博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
无限级分类数据处理方法
阅读量:5140 次
发布时间:2019-06-13

本文共 1634 字,大约阅读时间需要 5 分钟。

 

 

/** * 把返回的数据集转换成Tree * @param array $list 要转换的数据集 * @param string $pid parent标记字段 * @param string $level level标记字段 * @return array * @author 麦当苗儿 
*/function list_to_tree($list, $pk='id', $pid = 'pid', $child = '_child', $root = 0) { // 创建Tree $tree = array(); if(is_array($list)) { // 创建基于主键的数组引用 $refer = array(); foreach ($list as $key => $data) { $refer[$data[$pk]] =& $list[$key]; } foreach ($list as $key => $data) { // 判断是否存在parent $parentId = $data[$pid]; if ($root == $parentId) { $tree[] =& $list[$key]; }else{ if (isset($refer[$parentId])) { $parent =& $refer[$parentId]; $parent[$child][] =& $list[$key]; } } } } return $tree;}/** * 将list_to_tree的树还原成列表 * @param array $tree 原来的树 * @param string $child 孩子节点的键 * @param string $order 排序显示的键,一般是主键 升序排列 * @param array $list 过渡用的中间数组, * @return array 返回排过序的列表数组 * @author yangweijie
*/function tree_to_list($tree, $child = '_child', $order='id', &$list = array()){ if(is_array($tree)) { $refer = array(); foreach ($tree as $key => $value) { $reffer = $value; if(isset($reffer[$child])){ unset($reffer[$child]); tree_to_list($value[$child], $child, $order, $list); } $list[] = $reffer; } $list = list_sort_by($list, $order, $sortby='asc'); } return $list;}

 

转载于:https://www.cnblogs.com/binblogs/p/5176003.html

你可能感兴趣的文章
22_传智播客iOS视频教程_类的定义
查看>>
HDU 1856
查看>>
Linux 命令[9]:locate
查看>>
SQL 取时间差 去掉周末及非工作时间节假日
查看>>
MyEclipse+Struts+Hibernate+Mysql开发环境配置
查看>>
创建vue-cil后出现localhost:8080无法访问
查看>>
[HDU 2102] A计划(搜索题,典型dfs or bfs)
查看>>
Eclipse启动Tomcat端口占用
查看>>
建立索引
查看>>
php 中的魔术常量
查看>>
解释下浮动和它的工作原理?清除浮动的技巧
查看>>
改变命运的三个层次
查看>>
Command Line 3
查看>>
设计模式
查看>>
[ASP.NET]Treeview 控件显示服务端目录文件夹及文件
查看>>
dotnet core webapi +vue 搭建前后端完全分离web架构(一)
查看>>
maven打包时生成源代码
查看>>
GetLastError() 返回值含义
查看>>
浏览器的同源策略
查看>>
[转] iptables
查看>>