首页 > 后端开发 > php教程 > 如何从分层数组列表高效构建树结构?

如何从分层数组列表高效构建树结构?

Mary-Kate Olsen
发布: 2024-11-29 11:01:10
原创
713 人浏览过

How to Efficiently Build a Tree Structure from a Hierarchical Array List?

从数组列表构建树结构

给定一个具有层次关系的项目数组列表,我们如何有效地将其转换为嵌套树结构?

解决方案:

为了在不使用复杂的数据库优化的情况下实现这种转换,我们可以使用递归函数:

$arr = array(
  array('id' => 100, 'parentid' => 0, 'name' => 'a'),
  array('id' => 101, 'parentid' => 100, 'name' => 'a'),
  array('id' => 102, 'parentid' => 101, 'name' => 'a'),
  array('id' => 103, 'parentid' => 101, 'name' => 'a'),
);

$new = array();
foreach ($arr as $a) {
    $new[$a['parentid']][] = $a;
}
$tree = createTree($new, array($arr[0]));
print_r($tree);

function createTree(&$list, $parent){
    $tree = array();
    foreach ($parent as $k => $l){
        if(isset($list[$l['id']])){
            $l['children'] = createTree($list, $list[$l['id']]);
        }
        $tree[] = $l;
    } 
    return $tree;
}
登录后复制

这段代码将项目排列成嵌套的层次结构,表示它们之间的父子关系。可以使用 print_r 打印生成的树结构。

通过利用递归函数,我们可以有效地将数组列表转换为树结构,从而轻松导航和组织数据。

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

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