我有一棵巨大的动态生成的树。该树是根据每个元素的“ parent_id”属性从平面数组生成的。
例如,最终结果将如下所示:
Array
(
[0] => Array
(
[id] => 70
[name] => Top Corp
[parent_id] => 0
[children] => Array
(
[0] => Array
(
[id] => 43
[name] => Department
[parent_id] => 70
[children] => Array
(
[0] => Array
(
[id] => 45
[name] => Building
[parent_id] => 43
[children] => Array
(
[0] => Array
(
[id] => 75
[name] => Office
[parent_id] => 45
)
)
)
如何仅提取阵列树的一部分?我应该看什么功能或方法?
例如,我怎么说另一个子级别(可能深20-30个级别)现在位于顶部。
例如,的伪函数sliceTree(45)应产生以下结果,也就是从树开始id 45
[0] => Array
(
[id] => 45
[name] => Building
[parent_id] => 43
[children] => Array
(
[0] => Array
(
[id] => 75
[name] => Office
[parent_id] => 45
)
)
)
没有办法知道树可以走多深,因此它的解决方案需要递归。
我曾尝试循环数组,寻找起始ID,但是我不确定在找到该点之后如何继续执行。
哪个有效,但仅适用于顶级元素。我该如何递归并解释儿童的多个层次?
白衣染霜花