且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

嵌套数组。第三个层次是消失

更新时间:2023-01-31 12:36:39

要解决你的问题,你需要正确地理解如何的变量引用/别名在PHP 工作。

To solve your problem you need to properly understand how variable referencing/aliasing in PHP works.

请看下面的例子code,它不看你要多大不同,但利用引用才能访问,即使它已经搬任何父母:

Look at the following example code, which does not look much different to yours but makes use of references in order to access any parent even it has already "moved":

# transform $flat into a tree:
foreach($flat as $id => &$value)
{
    # check if there is a parent
    if ($parentId = $value['parent'])
    {
        $flat[$parentId][0][$id] =& $value; # add child to parent
        unset($flat[$id]); # remove reference from topmost level
    }
}
unset($value); # remove iterator reference
print_r($flat); # your tree

$平现在包含 $平所有值 - 但重新排序。 演示

$flat now contains all values from $flat - but reordered. Demo.