博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP树形列表互相转换函数
阅读量:7297 次
发布时间:2019-06-30

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

  hot3.png

function list_to_tree($list, $root = 0,$pk = 'id', $pid = 'pid', $child = '_child') {	// 创建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=0;			if(isset($data[$pid])){				$parentId =$data[$pid] ;			}			if ($root == $parentId) {				$tree[] = &$list[$key];			} else {				if (isset($refer[$parentId])) {					$parent = &$refer[$parentId];					$parent[$child][] = &$list[$key];				} 			}		} 	}	return $tree;}
function tree_to_list($tree, $level = 0,$pk = 'id', $pid = 'pid', $child = '_child'){	$list = array();	if (is_array($tree)){		foreach($tree as $val) {			$val['level']=$level;			$child=$val['_child'];			if(isset($child)){				if (is_array($child)){					unset($val['_child']);					$list=$val;					$list = array_merge($list, tree_to_list($child,$level+1));				}			}else{				$list=$val;			}		}		return $list;	}}

转载于:https://my.oschina.net/oaoa/blog/127249

你可能感兴趣的文章
畅通工程续(最短路)
查看>>
operator的各种问题
查看>>
35个排版耳目一新的网站设计欣赏
查看>>
spring topic chat
查看>>
Nginx
查看>>
.NET跨平台:在Linux上基于ASP.NET 5用EF7生成数据库
查看>>
DataProtection设置问题引起不同ASP.NET Core站点无法共享用户验证Cookie
查看>>
Windows 上编译 corefx 源码生成 Linux 上可用的 System.Data.SqlClient.dll
查看>>
Sublime python 環境配置和交互加載
查看>>
Android Touch事件传递机制 一: OnTouch,OnItemClick(监听器),dispatchTouchEvent(伪生命周期)...
查看>>
十进制到62进制的转换
查看>>
python 后台运行命令
查看>>
【IOS】读取、保存图片的各种方法
查看>>
CCNA第二章
查看>>
CCNP路 由 选 择 原 理
查看>>
input 特殊字符限制
查看>>
ubuntu14.04配置python 配置OPENCV
查看>>
String类的subString(i)方法(基于jdk 1.9)
查看>>
Java并发包--ConcurrentLinkedQueue
查看>>
vue.js组件命名
查看>>