我看着互联网,发现我所期待的东西。 我有一个固定的阵列,每个元素都含有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; }