PHP 处理菜单分级树状结构
2023-12-22 18:03:34
<?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
数组。
文章来源:https://blog.csdn.net/qq_39702981/article/details/135156599
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!