php子孙树生成层级-递归篇
毫不废话,代码如下:
<?php $list = [ ['id' => 1, 'pid' => 0, 'name' => '江苏'], ['id' => 2, 'pid' => 0, 'name' => '浙江'], ['id' => 3, 'pid' => 1, 'name' => '苏州'], ['id' => 4, 'pid' => 3, 'name' => '吴中区'], ['id' => 5, 'pid' => 2, 'name' => '宁波'], ['id' => 6, 'pid' => 4, 'name' => '工业园'], ['id' => 7, 'pid' => 6, 'name' => '中新大道'], ['id' => 8, 'pid' => 5, 'name' => '鄞州区'], ['id' => 9, 'pid' => 8, 'name' => '天童南路'], ]; $list = get_tree($list); foreach ($list as $key => $value) { echo str_repeat(" ",$value['level']) . $value['name'] . "\n"; } function get_tree($list = [], $pid = 0, $level = 0) { static $result = []; foreach ($list as $key => $value) { if ($value['pid'] == $pid) { $value['level'] = $level; $result[] = $value; unset($list[$key]); get_tree($list, $value['id'], $level+1); } } return $result; }
展示结果如下:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
2019-03-25 php处理数据分组问题
2016-03-25 php 写一个水仙花数的函数