【发布时间】:2012-03-13 06:37:49
【问题描述】:
在 PHP 中,我有这样的结构:
Array
(
[0] = Array
(
'id' => 1,
'parent' => 0
)
[1] = Array
(
'id' => 2,
'parent' => 1
)
[2] = Array
(
'id' => 3,
'parent' => 1
)
[3] = Array
(
'id' => 4,
'parent' => 2
)
)
id 是唯一整数,parent 是对另一个元素的 id 的引用。如果parent 为 0,则它没有父级。树形结构如下所示:
1 -> 2 -> 4
-> 3
(我希望这很清楚!)。我一直在尝试确定一种算法,该算法将产生一个嵌套数组或类似的输出,以暴露树的层次结构,以便我可以使用它;例如,一个这样的输出是:tree = ['1' => ['2' => ['4'], '3']]]。该算法可以支持任意深度的数组;但我的限制是一个孩子不能有多个父母。
为非标准语法道歉,我希望它能有效地传达我想要实现的目标,我认为这是深度优先搜索 - 但是我遇到的实现太枯燥了,我无法理解所以我将不胜感激。
【问题讨论】:
标签: php algorithm recursion tree