记住用户名密码
<?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
数组。
目前有 0 条留言 其中:访客:0 条, 博主:0 条