【发布时间】:2011-10-26 03:47:44
【问题描述】:
我从 MySQL 数据库返回一个页面列表及其父页面,并将所有结果放入一个数组中,如下所示,其中每个结果都是一个数组,其中包括论坛的父、名称和 id(数组页面的键也与页面ID相同)。
为了模型和应用,还有一些其他的参数。
- “根页面”的父级为 0
- 没有孤立页面
所以,MySQL 查询将返回此数据集。
pages=>
[1] => array(id=>1,
parent=>0,
name=>Hello World)
[2] => array(id=>1,
parent=>1,
name=>Child of Hello World)
[3] => array(id=>1,
parent=>0,
name=>Brother of Hello World)
[4] => array(id=>4,
parent=>2,
name=Grand-child of Hello World)
[6] => array(id=>6,
parent=>4,
name=Great-grand-child of Hello World)
然后我想将数组转换成类似这样的东西
pages=>
[1] => id=>1,
name=>Hello World
children=>
[2] => id=>1
name=>Child of Hello World
children=>
[4] =>
id=>4
name=> Grand-child of Hello World)
children=>
[6] =>
id=>6
name=> Great-grand-child of Hello World
children= null
[3] => array(id=>1,
name=>Brother of Hello World
children=>null
所以基本上,我想把一个线性数组变成一个嵌套的多维数组,这样我就可以打印我的站点地图了。
它需要是一个递归解决方案。有 700 多页,最多 5 或 6 个级别。
我只想做 1 个 mysql 查询。不是 700 所以请不要给我一个基于 mysql 的解决方案。
【问题讨论】:
-
请使用您喜欢的搜索引擎并搜索“mysql嵌套集”
标签: php arrays recursion build multidimensional-array