php 数组解析为树型结构
来源:互联网 发布:456时时彩源码 编辑:程序博客网 时间:2024/06/08 13:46
在程序在经常会遇到树形的数据,而在mysql中没有提供递归查询的方法,当然也可以用 mysql 的 自定义函数或者存储过程来实现,不过写方法依赖数据库不方便以后的数据迁移下面。
下面是我用代码实现的方法:
// 测试数据public function test(){ $data = array( ['id'=>1, 'father_id'=>0], ['id'=>2, 'father_id'=>1], ['id'=>3, 'father_id'=>0], ['id'=>4, 'father_id'=>2], ['id'=>5, 'father_id'=>3], ['id'=>6, 'father_id'=>2], ); echo json_encode($this->_classify_category(0, $data));}/** * 解析树形结构数据 * @param int $father_id 父节点id * @param $data 需要解析的数组 * @return array 树形结构 */private function _classify_category($father_id = 0, $data){ $category = []; // 深度遍历 foreach ($data as $key=>$row) { $temp = $row; $temp['children'] = []; // 若在数组中找到子节点,删除该节点在数组中的值,减少后面遍历次数 if ($father_id == $temp['father_id']) { unset($data[$key]); $temp['children'] = $this->_classify_category($temp['id'], $data); array_push($category, $temp); } } return $category;}
测试结果:
0 0
- php 数组解析为树型结构
- php字符串解析为数组的方法
- PHP解析CSV文件为数组
- php解析数据格式转化为js数组
- php str_getcsv把字符串解析为数组的使用方法
- php str_getcsv把字符串解析为数组的实现方法
- PHP 解析JSON数组
- PHP 解析JSON数组
- 将结构转换为数组
- PHP 三维数组的结构
- PHP 数组 内存实现结构
- php 目录遍历为数组
- php 对象转换为数组
- PHP强制转换为数组
- php 数组转换为字符串
- php对象转化为数组
- php $_FILES 数组为 empty
- php stdClass转化为数组
- android:获取手机号码和姓名实现通讯录
- HDU 5753 Permutation Bo(多校3 --- 1002)
- HDU Problem 4907 Take schedule 【二分】
- 更新操作
- Noj 1651 Red packet
- php 数组解析为树型结构
- [Oracle] 分布式事务和两阶段提交(2PC)
- H5项目常见问题汇总及解决方案(转)
- error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“MTd_StaticDebug”
- oracle用户的权限
- 八皇后问题(回溯 递归)
- 分布式学习
- JS原型题集
- HDU 1827 3072强联通分量