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;
}
展示结果如下:

php子孙树生成层级-递归篇的更多相关文章
- Python入门篇-数据结构树(tree)篇
Python入门篇-数据结构树(tree)篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.树概述 1>.树的概念 非线性结构,每个元素可以有多个前躯和后继 树是n(n& ...
- 路径字符串数据转化为树型层级对象,path to json tree
由于项目中使用了react 及 ant-design ,在使用tree树型控件时,需要 类似下面的数据, const treeData = [{ title: '0-0', key: '0-0', c ...
- PHP树生成迷宫及A*自己主动寻路算法
PHP树生成迷宫及A*自己主动寻路算法 迷宫算法是採用树的深度遍历原理.这样生成的迷宫相当的细,并且死胡同数量相对较少! 随意两点之间都存在唯一的一条通路. 至于A*寻路算法是最大众化的一全自己主动寻 ...
- Best Coder Round#25 1003 树的非递归访问
虽然官方解释是这题目里的树看作无向无环图,从答案来看还是在“以1作为根节点”这一前提下进行的,这棵树搭建好以后,从叶节点开始访问,一直推到根节点即可——很像动态规划的“自底向上”. 但这棵树的搭建堪忧 ...
- BZOJ4006 JLOI2015 管道连接(斯坦纳树生成森林)
4006: [JLOI2015]管道连接 Time Limit: 30 Sec Memory Limit: 128 MB Description 小铭铭最近进入了某情报部门,该部门正在被如何建立安全的 ...
- 玩转Web之easyui(二)-----easy ui 异步加载生成树节点(Tree),点击树生成tab(选项卡)
关于easy ui 异步加载生成树及点击树生成选项卡,这里直接给出代码,重点部分代码中均有注释 前台: $('#tree').tree({ url: '../servlet/School_Tree?i ...
- bootstrap动态生成层级ul-li 新闻预览 常用方法
<div class="row" id="add-withinfosortId-row" style="display: none"& ...
- 无限极分类php实现—查子孙树、家谱树
1.本文更新日期:2018/05/20 , 亲测可用,在原有基础上进行增强和 详细化 . 2.面包屑导航 和 子孙树 效果图如下: 3.代码: <?php // 无限级分类中,查家谱树(面包屑导 ...
- js 遍历树的层级关系的实现
1.遍历树的层级关系 1)先整理数据 2)找到id和数据的映射关系 3)然后找到父节点的数据,进行存储 test() { const list = [ { id: ", parentId: ...
- .NET技术-6.0. Expression 表达式树 生成 Lambda
.NET技术-6.0. Expression 表达式树 生成 Lambda public static event Func<Student, bool> myevent; public ...
随机推荐
- 操作 JAR 文件
列出 JAR 文件内容 使用 jar 命令来列出 JAR 文件的内容: jar tf myapp.jar -t 选项表示列出文件,-f 表示指定 JAR 文件. 解压 JAR 文件 使用 jar 命令 ...
- Windows 新建用户帐户
Windows 近年来大力推广使用 Microsoft 帐户登录 Windows.然而,如果你这么做了,Windows 会取你登录帐户的前 5 个字母作为你的本地用户名,非常的丑陋.更难受的是本地用户 ...
- 解密华为问界M7 Pro:智能出行的全新里程碑与技术亮点
解读华为问界M7 Pro的智能里程碑 引言 2024年8月,智能出行领域迎来了一个激动人心的时刻--问界M7 Pro的重磅发布.这款智能SUV,不仅是华为在汽车领域的又一次大胆尝试,更是鸿蒙智行系统的 ...
- SciPy从入门到放弃
目录 SciPy简介 拟合与优化模块 求最小值 曲线拟合 线性代数模块 统计模块 直方图和概率密度函数 统计检验 SciPy简介 SciPy是一种以NumPy为基础,用于数学.工程及许多其他的科学任务 ...
- OData – 大杂烩
前言 本篇记入一些 OData 的小东西. Query string too long OData 使用 GET 请求,然后搭配 query string $filter, $select, $exp ...
- CSS – Dimension min-content, max-content, fit-content
前言 无意间在 practice 的时候看到视频使用, 以前没有听过. 它有点像 Figma 的 hug content, 据说 CSS 2.1 也是有类似的概念, 只是没有被正式纳入 CSS 里. ...
- 从零开始掌握 Kubernetes:Pod 和 Deployment 的幕后故事
1. 引言 在如今的技术世界中,随着微服务架构的广泛应用和云原生理念的兴起,应用程序的开发.部署和管理发生了翻天覆地的变化.容器技术的出现使得开发者可以轻松地将应用及其所有依赖打包在一个轻量级.可移植 ...
- Element——前端样式美化
Element 简介 Element 快速入门 https://element.eleme.cn/#/zh-CN/component/button Element 布局 ht ...
- IT男如何走上的自由职业之路。
前言 在博客园的一篇文章<40岁大龄失业程序猿,未来该何去何从>,在下面留言,目前自己在做自由职业,很多人加好友咨询自由职业的事情,对IT行业自由职业比较感兴趣,问怎么能走上这条路,所以才 ...
- Kubernetes ReplicaSet 控制器(十九)
前面我们一起学习了 Pod 的原理和一些基本使用,但是在实际使用的时候并不会直接使用 Pod,而是会使用各种控制器来满足我们的需求,Kubernetes 中运行了一系列控制器来确保集群的当前状态与期望 ...