PHP 处理菜单分级树状结构

<?php  
  
// 原始数组  
$originalArray = [  
    0 => ["id" => 1, "parent_id" => 0, "name" => "首页", "name_id" => "1"],  
    1 => ["id" => 2, "parent_id" => 0, "name" => "用户管理", "name_id" => "2"],  
    2 => ["id" => 3, "parent_id" => 2, "name" => "商品管理", "name_id" => "2-3"],  
    3 => ["id" => 4, "parent_id" => 2, "name" => "余额管理", "name_id" => "2-4"]  
];  
  
// 递归函数,用于构建树状结构  
function buildTree($array, $parentId = 0) {  
    $tree = [];  
    foreach ($array as $item) {  
        if ($item['parent_id'] == $parentId) {  
            $children = buildTree($array, $item['id']);  
            if ($children) {  
                $item['children'] = $children;  
            }  
            $tree[] = $item;  
        }  
    }  
    return $tree;  
}  
  
// 调用递归函数构建树状结构  
$tree = buildTree($originalArray);  
  
// 打印树状结构  
print_r($tree);  
?>

运行上述代码将输出以下结果:

Array  
(  
    [0] => Array  
        (  
            [id] => 1  
            [parent_id] => 0  
            [name] => 首页  
            [name_id] => 1  
        )  
  
    [1] => Array  
        (  
            [id] => 2  
            [parent_id] => 0  
            [name] => 用户管理  
            [name_id] => 2  
            [children] => Array  
                (  
                    [0] => Array  
                        (  
                            [id] => 3  
                            [parent_id] => 2  
                            [name] => 余额管理  
                            [name_id] => 2-3  
                        )  
                    [1] => Array  
                        (  
                            [id] => 4  
                            [parent_id] => 2  
                            [name] => 商品管理  
                            [name_id] => 2-4  
                        )  
                )  
        )  
)

 

这样,你就成功地将原始数组转换成了树状结构。每个节点都有一个唯一的id,以及指向其父节点的parent_id。如果一个节点有子节点,它还将包含一个children数组。

相关推荐

  1. PHP 处理菜单分级树状结构

    2023-12-27 18:16:02       44 阅读
  2. FastAdmin菜单规则树形结构分类显示

    2023-12-27 18:16:02       10 阅读
  3. 数据结构-树状数组

    2023-12-27 18:16:02       15 阅读
  4. postgresql树状结构查询示例

    2023-12-27 18:16:02       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-27 18:16:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-27 18:16:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-27 18:16:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-27 18:16:02       20 阅读

热门阅读

  1. Centos设置IP地址的方法

    2023-12-27 18:16:02       37 阅读
  2. kotlin by lazy 的使用

    2023-12-27 18:16:02       38 阅读
  3. 第一节(学习HarmonyOS的背景)

    2023-12-27 18:16:02       47 阅读
  4. init_appium_and_devices 的实现思路分析

    2023-12-27 18:16:02       35 阅读
  5. 【vim编辑器的使用】

    2023-12-27 18:16:02       44 阅读