我有两张桌子,content
和theme
。theme
应该为表中的每一行获取几行content
。这是我用 PDO 和一个涉及LEFT JOIN
. 每次出现主题文件时,输出数组都会给我一个数组(如下)。
我想重新组织数组,以便我得到一个数组,每个contentID
数组中包含一个包含每个匹配主题文件的数组。
想法是类似的东西$content=>'theme'['logo']
会获取匹配主题文件之一的值。
这将如何完成。
array(
array (
contentID => 1,
title => 'test',
subtitle = 'a description',
themeID => 1,
theme_file => 'navigation'
)
array (
contentID => 1,
title => 'test',
subtitle = 'a description',
themeID => 2,
theme_file => 'logo'
)
)
根据要求,我添加了其他代码。事实上,我希望将 3 个表相互嵌套,但为了对其他人有帮助的问题,我将其保留为 2。如果有帮助,这是 mySQL 查询:
SELECT *
FROM content
LEFT JOIN content_theme ON content.contentID = content_theme.contentID
LEFT JOIN theme ON theme.themeID = content_theme.themeID
OR theme.default =1
LEFT JOIN theme_meta ON theme.themeID = theme_meta.themeID
WHERE content.contentID = 9
ORDER BY theme.default DESC
因此,目的是让每一content
行嵌套其所有匹配的theme
行,并为这些theme
行中的每一个嵌套它们的每个匹配theme_meta
行
数据库的原始输出:
Array
(
[0] => Array
(
[contentID] =>
[0] => 4
[type] => page
[1] => page
[type_alts] =>
[2] =>
[url] => about
[3] => about
[title] => About
[4] => About
[subtitle] =>
[5] =>
[online] => 1
[6] => 1
[req] => 0
[7] => 0
[pos] => 0
[8] => 0
[parent] => 0
[9] => 0
[content_theme_ID] =>
[10] =>
[11] =>
[themeID] => 2
[12] =>
[13] => 2
[theme_type] => general
[14] => general
[theme_file] => logo
[15] => logo
[theme_default] => 1
[16] => 1
[theme_title] => MD Group
[17] => MD Group
[18] => 2
[field] => src
[19] => src
[value] => uploads/img/murphey-dines-group-logo.png
[20] => uploads/img/murphey-dines-group-logo.png
)
[1] => Array
(
[contentID] =>
[0] => 4
[type] => page
[1] => page
[type_alts] =>
[2] =>
[url] => about
[3] => about
[title] => About
[4] => About
[subtitle] =>
[5] =>
[online] => 1
[6] => 1
[req] => 0
[7] => 0
[pos] => 0
[8] => 0
[parent] => 0
[9] => 0
[content_theme_ID] =>
[10] =>
[11] =>
[themeID] => 2
[12] =>
[13] => 2
[theme_type] => general
[14] => general
[theme_file] => logo
[15] => logo
[theme_default] => 1
[16] => 1
[theme_title] => MD Group
[17] => MD Group
[18] => 2
[field] => title
[19] => title
[value] => murphey dines Group
[20] => murphey dines Group
)
[2] => Array
(
[contentID] =>
[0] => 4
[type] => page
[1] => page
[type_alts] =>
[2] =>
[url] => about
[3] => about
[title] => About
[4] => About
[subtitle] =>
[5] =>
[online] => 1
[6] => 1
[req] => 0
[7] => 0
[pos] => 0
[8] => 0
[parent] => 0
[9] => 0
[content_theme_ID] =>
[10] =>
[11] =>
[themeID] =>
[12] =>
[13] => 7
[theme_type] => general
[14] => general
[theme_file] => navigation
[15] => navigation
[theme_default] => 1
[16] => 1
[theme_title] => Main Navigation
[17] => Main Navigation
[18] =>
[field] =>
[19] =>
[value] =>
[20] =>
)
)