两个不用递归的树形数组构造函数
来源:互联网 发布:中国建筑国际集团知乎 编辑:程序博客网 时间:2024/06/05 19:02
两个不用递归的树形数组构造函数
示例
/** * 创建父节点树形数组 * 参数 * $ar 数组,邻接列表方式组织的数据 * $id 数组中作为主键的下标或关联键名 * $pid 数组中作为父键的下标或关联键名 * 返回 多维数组 **/function find_parent($ar, $id='id', $pid='pid') { foreach($ar as $v) $t[$v[$id]] = $v; foreach ($t as $k => $item){ if( $item[$pid] ){ if( ! isset($t[$item[$pid]]['parent'][$item[$pid]]) ) $t[$item[$id]]['parent'][$item[$pid]] =& $t[$item[$pid]]; } } return $t;}/** * 创建子节点树形数组 * 参数 * $ar 数组,邻接列表方式组织的数据 * $id 数组中作为主键的下标或关联键名 * $pid 数组中作为父键的下标或关联键名 * 返回 多维数组 **/function find_child($ar, $id='id', $pid='pid') { foreach($ar as $v) $t[$v[$id]] = $v; foreach ($t as $k => $item){ if( $item[$pid] ) { $t[$item[$pid]]['child'][$item[$id]] =& $t[$k]; } } return $t;}
示例
$data = array( array('ID'=>1, 'PARENT'=>0, 'NAME'=>'祖父'), array('ID'=>2, 'PARENT'=>1, 'NAME'=>'父亲'), array('ID'=>3, 'PARENT'=>1, 'NAME'=>'叔伯'), array('ID'=>4, 'PARENT'=>2, 'NAME'=>'自己'), array('ID'=>5, 'PARENT'=>4, 'NAME'=>'儿子'),);$p = find_parent($data, 'ID', 'PARENT');$c = find_child($data, 'ID', 'PARENT');
- 两个不用递归的树形数组构造函数
- 发布两个不用递归的树形数组构造函数【解释】
- 发布两个不用递归的树形数组构造函数
- 两个不用递归的php树形数组构造函数(转)
- php 实现不用递归的树形数组构造函数 无限级分类
- 树形数组的递归遍历
- php不用递归实现无限分类数据的树形格式化
- 不要递归的树形数组解析(摘抄)
- 不用除法构造数组
- java如何高效打印一个二维数组(不用递归,不用两个for循环)
- asp.net不用递归呈现树形菜单
- 9行代码,不用递归实现无限分类数据的树形格式化
- 5行代码足矣,不用递归实现无限分类数据的树形格式化
- 栈溢出(构造函数的递归)
- python zip函数同时遍历两个数组和构造字典
- C#数据库递归构造treeview树形结构
- C#数据库递归构造TreeView树形结构
- Java递归算法构造JSON树形结构
- ASP的GRIDVIEW中行颜色随鼠标移动变化(半原创)
- chkconfig命令详解
- JAVA 的服务器重定向:使用forward()方法转发请求和使用 sendRedirect()方法重定向的区别
- 数据库 [ 优化 -- 查询 ]
- PHP编程之HTML(css)
- 两个不用递归的树形数组构造函数
- XFire开发Web Services入门例子
- 弹出对话框,选择一个文件夹,返回文件夹path
- 黑马程序员 Java高级特性II
- GNUPLOT使用技巧
- c#--结构属性字段错误
- linux input 子系统分析
- iphone UILabel的属性应用
- [转]会说话,减少奋斗30年