我看着互联网,发现我所期待的东西。 我有一个固定的阵列,每个元素都含有id和 parent。 每个单元只有单亲,但可能有多个子女。 如果母体=0,则被视为一个基本项目。 我试图把我的平整阵带上树。 我发现的其他样本只向父母复制了该元素,但原样仍然存在。
http://www.ohchr.org。
起始阵列的每个组成部分都从单独的XML档案中阅读。 档案本身如无父母,其价值为0。 关键因素实际上是在扼杀。
我对先前的混乱感到担忧。 希望这一点更为明确:
http://www.ohchr.org。
我的起点是:
Array
(
[_319_] => Array
(
[id] => 0
[parent_id] => 0
)
[_320_] => Array
(
[id] => _320_
[parent_id] => 0
)
[_321_] => Array
(
[id] => _321_
[parent_id] => _320_
)
[_322_] => Array
(
[id] => _322_
[parent_id] => _321_
)
[_323_] => Array
(
[id] => _323_
[parent_id] => 0
)
[_324_] => Array
(
[id] => _324_
[parent_id] => _323_
)
[_325_] => Array
(
[id] => _325_
[parent_id] => _320_
)
)
树后形成的阵列:
Array
(
[_319_] => Array
(
[id] => _319_
[parent_id] => 0
)
[_320_] => Array
(
[id] => _320_
[parent_id] => 0
[children] => Array
(
[_321_] => Array
(
[id] => _321_
[parent_id] => _320_
[children] => Array
(
[_322_] => Array
(
[id] => _322_
[parent_id] => _321_
)
)
)
[_325_] => Array
(
[id] => _325_
[parent_id] => _320_
)
)
[_323_] => Array
(
[id] => _323_
[parent_id] => 0
[children] => Array
(
[_324_] => Array
(
[id] => _324_
[parent_id] => _323_
)
)
)
任何帮助/指导都受到高度赞赏。
我迄今为止的一些法典:
function buildTree(array &$elements, $parentId = 0) {
$branch = array();
foreach ($elements as $element) {
if ($element[ parent_id ] == $parentId) {
$children = $this->buildTree($elements, $element[ id ]);
if ($children) {
$element[ children ] = $children;
}
$branch[] = $element;
}
}
return $branch;
}
