【发布时间】:2010-02-16 14:12:11
【问题描述】:
我正在尝试设置一个可以具有多个级别的列表,使用parentId 来定义其父级。第一项的parentId 为NULL。部分条目示例:
id parentId name
1 NULL item1
2 NULL item2
3 1 item3
4 2 item4
5 3 item5
6 3 item6
所以,1 和 2 是主要项目; 3 是 1 岁的孩子; 4 是 2 岁的孩子; 5 是 3 的孩子(它本身就是 1 的孩子); 6 也是 3 的孩子(它本身就是 1 的孩子);等等
我无法创建一个正确地将这些项目添加到正确级别的数组。它应该是这样的:
Array
(
[1] => Array
(
[name] => item1
[parentId] =>
[children] => Array
(
[3] => Array
(
[name] => item3
[parentId] => 1
[children] => Array
(
[5] => Array
(
[name] => item5
[parentId] => 3
)
[6] => Array
(
[name] => item6
[parentId] => 3
)
)
)
)
)
[2] => Array
(
[name] => item2
[parentId] =>
[children] => Array
(
[4] => Array
(
[name] => item4
[parentId] => 2
)
)
)
)
但是假设我使用foreach() 遍历所有项目,然后我到达项目 5。它的 parentId 是 3,但那时,我不知道这个父 3 在数组中的位置,以及如何将子级添加到该父级。
有没有什么技巧可以循环遍历这些项目,并以正确的方式将它们全部放置到位?
【问题讨论】: