php根据id和pid把单级数组重新组合为树结构

function list_to_trees($list, $pk='id', $pid = 'pid', $child = 'children', $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
$parantId = $data[$pid];
if ($root == $parantId) {
$tree[] = &$list[$key];
}else {
if (isset($refer[$parantId])) {
$parent = &$refer[$parantId];
$parent[$child][] = &$list[$key];
}
}
}
}
return $tree;
}
参数说明
- $list [array] 原始数组
- $pk [string] id
- $pid [string] 父级pid
- $child [array] 承载子集的容器
- return [array] 返回树结构
一般传第一个参数就行
联系站长:

相关文章
jquery获取input选中值,jquery获取radio选中值,jquery获取select选中值,jquery获取checkbox选中值,jquery使用ajax异步提交表单数据
jquery获取input值://<input name="myinput"/> var inputValues = $(...
【简单一行】使用js去掉空格方法-原生js代码实现JavaScript
【简单一行】使用js去掉空格方法-原生js代码实现JavaScript str为要去除空格的字符串:1、去掉所有空格:str=str.replace(/\s+/g,""); &...
Animate.css使用方法,及源码下载,包含中文文档教程-css3动画演示合集,可用于uniapp
Animate.css是一个即用型跨浏览器动画库,可在您的 Web 项目中使用。非常适合强调、主页、滑块和注意力引导提示。注意:Animate.css可以在uniapp中使用,并且兼容多端,源码放页面...
js使用正则表达式获取html字符串中的img标签的src组成数组
js使用正则表达式获取html字符串中的img标签的src组成数组exec() 方法用于检索字符串中的正则表达式的匹配。如果字符串中有匹配的值返回该匹配值,否则返回 null。var htm...
uniapp富文本编辑器editor的使用,复制可用
关于uniapp富文本编辑器editor的使用,我会把HTML,css,js三部分代码都完整列出来,其实也是一个总结,因为官方教程有些不是很清楚,这里总结一下,方便大家使用:1、html部分:<...
fingerprintjs2使用方法,以及fingerprintjs2文件下载
fingerprintjs2使用方法,以及fingerprintjs2文件下载获取唯一标识,如果有技术问题可以联系站长官方教程:<script> // ...
发表评论
