$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 实现递归处理数据相关推荐

  1. JS 递归树结构数据查找所有叶子节点

    JS 递归树结构数据查找所有叶子节点 export function getAllLeaf (data) {let result = []function getLeaf (data) {data.f ...

  2. 潜移默化学会WPF(难点控件treeview)--改造TreeView(CheckBox多选择版本),递归绑定数据...

    目前自己对treeview的感慨很多 今天先讲 面对这种 表结构的数据 的其中一种绑定方法,后面多几列其他属性都没关系,例如多个字段, 1  A  0 2  B  0 3  C  0 4  D  1 ...

  3. 组织架构递归_映射架构和递归管理数据–第2部分

    组织架构递归 介绍 (Introduction) In Part 1 of this article, we built a case for the benefits of documenting ...

  4. 组织架构递归_映射架构和递归管理数据–第1部分

    组织架构递归 介绍 (Introduction) In a typical OLTP environment, we want to maintain an acceptable level of d ...

  5. Devexpress控件中TreeList的递归绑定数据

    Devexpress中的TreeList控件能实现类似于TreeView的功能 下面介绍下TreeList递归绑定DataTable中的数据 两个表.第一个表是父节点类型,第二个表是每个类型下的子节点 ...

  6. C# 递归的应用 TreeView递归绑定数据

    递归在WinForm中的应用 最近做项目经常用到递归,刚开始很久没用,不太熟悉,现在研究了下,并写下了学习笔记及开发经验总结. 递归热身 一个算法调用自己来完成它的部分工作,在解决某些问题时,一个算法 ...

  7. PHP递归 获取数据

    递归获取 下级数据 public function get_address_id($address_id) {$address_data = $address_id.",";$ad ...

  8. ajax遍历递归树数据,怎么用JS递归发送AJAX请求

    解决了写一个我自己的 没有想象的那么困难是我自己想复杂了 function onNetChange() { var nt = plus.networkinfo.getCurrentType(); if ...

  9. mysql数据库递归访问数据

    目录 1.背景 2.创建函数queryAllParentIds(inputId VARCHAR(32)) 2.1.创建函数 2.2.函数测试 2.3.结果验证 3.创建函数queryLongName( ...

最新文章

  1. java lucene demo,lucene自带的两个demo的运行测试方法
  2. oracle类型sql转为mysql_Oracle和MySql之间SQL区别(等效转换以及需要注意的问题)...
  3. 点在平面上的投影坐标例题_光测力学-栅线投影(面结构光)技术
  4. Kubernetes安全之鉴权
  5. Flume日志采集,avro采集,以及通过参数控制下沉到hdfs的文件大小,时间等控制
  6. CF986B Petr and Permutations 思维
  7. image打开rgb16 qt_QT中显示图像数据
  8. Hive的使用之控制台
  9. ssas表格模型 权限控制_如何在SQL Server 2016中自动执行SSAS表格模型处理
  10. linux常用知识命令
  11. vue el-tree 默认选中_Vue UI:Vue开发者必不可少的工具
  12. SpringMVC中实现文件上传
  13. excel制作(1)多记录跟进表格
  14. 微信小程序圆形图片小图标按钮
  15. 国服游戏封包解密-外挂制作全过程
  16. php实现微信第三方登录
  17. 417分上那所计算机学院,2021年高考417分左右能上什么大学(100所)
  18. 一阶高通滤波+二阶Mahony滤波的四元数姿态解算
  19. 苹果手机屏幕上的圆点怎么设置?(开启悬浮按钮)
  20. hadoop配置文件workers

热门文章

  1. HTTP API接口设计规范
  2. MFRC53101TOFE小知识
  3. 零基础Unity做一个中秋诗词鉴赏网页,提前祝您中秋快乐!(DoTween动画 | WebGL视频 | 大文件上传GitHub)
  4. mysql(十)条件语句、循环语句、动态执行SQL语句
  5. 企业微信朋友圈和个人微信朋友圈有哪些区别?
  6. 智能体适能训练评估系统-体姿体态评估系统软件
  7. 华南师范大学校园网自动登录教程
  8. DBEX-1-6-2015数据库开发技术
  9. 如何打造优秀的个人博客
  10. Weighted Interval Scheduling VS Interval Scheduling