首页 > 后端开发 > php教程 > 如何从平面数组列表高效创建嵌套数组树?

如何从平面数组列表高效创建嵌套数组树?

Susan Sarandon
发布: 2024-12-25 18:50:10
原创
686 人浏览过

How to Efficiently Create a Nested Array Tree from a Flat Array List?

从数组列表创建嵌套数组树

您有一个具有父子关系的元素数组,并希望将其转换为嵌套数组树。这是一个有效的解决方案:

# Create a new array indexed by parent ID
$new = [];
foreach ($arr as $a) {
    $new[$a['parentid']][] = $a;
}

# Start with the root node
$tree = createTree($new, [$arr[0]]);

# Recursive function to build the tree
function createTree(&$list, $parent) {
    $tree = [];
    foreach ($parent as $l) {
        # If there are children, create children tree
        if (isset($list[$l['id']])) {
            $l['children'] = createTree($list, $list[$l['id']]);
        }

        # Add parent to the tree
        $tree[] = $l;
    }
    return $tree;
}
登录后复制

该算法根据原始数组中的父子关系高效地构造嵌套数组树。

以上是如何从平面数组列表高效创建嵌套数组树?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板