PHP 实现递归处理数据
$array = array(array('id' => 1, 'pid' => 0, 'name' => '河北省'),array('id' => 2, 'pid' => 0, 'name' => '北京市'),array('id' => 3, 'pid' => 1, 'name' => '邯郸市'),array('id' => 4, 'pid' => 2, 'name' => '朝阳区'),array('id' => 5, 'pid' => 2, 'name' => '通州区'),array('id' => 6, 'pid' => 4, 'name' => '望京'),array('id' => 7, 'pid' => 4, 'name' => '酒仙桥'),array('id' => 8, 'pid' => 3, 'name' => '永年区'),array('id' => 9, 'pid' => 1, 'name' => '武安市'),
);
function getTree($array, $pid =0, $level = 0){//声明静态数组,避免递归调用时,多次声明导致数组覆盖static $list = [];foreach ($array as $key => $value){//第一次遍历,找到父节点为根节点的节点 也就是pid=0的节点if ($value['pid'] == $pid){//父节点为根节点的节点,级别为0,也就是第一级$value['level'] = $level;//把数组放到list中$list[] = $value;//把这个节点从数组中移除,减少后续递归消耗unset($array[$key]);//开始递归,查找父ID为该节点ID的节点,级别则为原级别+1getTree($array, $value['id'], $level+1);}}return $list;
}
$arr = fun($array,0,0);
PHP 实现递归处理数据相关推荐
- JS 递归树结构数据查找所有叶子节点
JS 递归树结构数据查找所有叶子节点 export function getAllLeaf (data) {let result = []function getLeaf (data) {data.f ...
- 潜移默化学会WPF(难点控件treeview)--改造TreeView(CheckBox多选择版本),递归绑定数据...
目前自己对treeview的感慨很多 今天先讲 面对这种 表结构的数据 的其中一种绑定方法,后面多几列其他属性都没关系,例如多个字段, 1 A 0 2 B 0 3 C 0 4 D 1 ...
- 组织架构递归_映射架构和递归管理数据–第2部分
组织架构递归 介绍 (Introduction) In Part 1 of this article, we built a case for the benefits of documenting ...
- 组织架构递归_映射架构和递归管理数据–第1部分
组织架构递归 介绍 (Introduction) In a typical OLTP environment, we want to maintain an acceptable level of d ...
- Devexpress控件中TreeList的递归绑定数据
Devexpress中的TreeList控件能实现类似于TreeView的功能 下面介绍下TreeList递归绑定DataTable中的数据 两个表.第一个表是父节点类型,第二个表是每个类型下的子节点 ...
- C# 递归的应用 TreeView递归绑定数据
递归在WinForm中的应用 最近做项目经常用到递归,刚开始很久没用,不太熟悉,现在研究了下,并写下了学习笔记及开发经验总结. 递归热身 一个算法调用自己来完成它的部分工作,在解决某些问题时,一个算法 ...
- PHP递归 获取数据
递归获取 下级数据 public function get_address_id($address_id) {$address_data = $address_id.",";$ad ...
- ajax遍历递归树数据,怎么用JS递归发送AJAX请求
解决了写一个我自己的 没有想象的那么困难是我自己想复杂了 function onNetChange() { var nt = plus.networkinfo.getCurrentType(); if ...
- mysql数据库递归访问数据
目录 1.背景 2.创建函数queryAllParentIds(inputId VARCHAR(32)) 2.1.创建函数 2.2.函数测试 2.3.结果验证 3.创建函数queryLongName( ...
最新文章
- java lucene demo,lucene自带的两个demo的运行测试方法
- oracle类型sql转为mysql_Oracle和MySql之间SQL区别(等效转换以及需要注意的问题)...
- 点在平面上的投影坐标例题_光测力学-栅线投影(面结构光)技术
- Kubernetes安全之鉴权
- Flume日志采集,avro采集,以及通过参数控制下沉到hdfs的文件大小,时间等控制
- CF986B Petr and Permutations 思维
- image打开rgb16 qt_QT中显示图像数据
- Hive的使用之控制台
- ssas表格模型 权限控制_如何在SQL Server 2016中自动执行SSAS表格模型处理
- linux常用知识命令
- vue el-tree 默认选中_Vue UI:Vue开发者必不可少的工具
- SpringMVC中实现文件上传
- excel制作(1)多记录跟进表格
- 微信小程序圆形图片小图标按钮
- 国服游戏封包解密-外挂制作全过程
- php实现微信第三方登录
- 417分上那所计算机学院,2021年高考417分左右能上什么大学(100所)
- 一阶高通滤波+二阶Mahony滤波的四元数姿态解算
- 苹果手机屏幕上的圆点怎么设置?(开启悬浮按钮)
- hadoop配置文件workers