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

站长软件开发1年前技术分享433
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] 返回树结构

一般传第一个参数就行

联系站长:

相关文章

js使用正则表达式获取html字符串中的img标签的src组成数组

js使用正则表达式获取html字符串中的img标签的src组成数组

js使用正则表达式获取html字符串中的img标签的src组成数组exec() 方法用于检索字符串中的正则表达式的匹配。如果字符串中有匹配的值返回该匹配值,否则返回 null。var htm...

js实用函数之map()函数的使用,一分钟学会

js实用函数之map()函数的使用,一分钟学会

重点:map() 方法定义在JavaScript的Array中,它返回一个新的数组,数组中的元素为原始数组调用函数处理后的值。值得注意的是:1、map()函数不会对空数组进行检测;2、map...

vue history路由下,对ngnix服务配置修改防止出现404问题

vue history路由下,对ngnix服务配置修改防止出现404问题

打开配置文件: # 打开配置文件 vi /usr/local/nginx/conf/nginx.con 宝塔则点击域名在里面找到配置文件进去修改: 如果域名直接指向...

Animate.css使用方法,及源码下载,包含中文文档教程-css3动画演示合集,可用于uniapp

Animate.css使用方法,及源码下载,包含中文文档教程-css3动画演示合集,可用于uniapp

Animate.css是一个即用型跨浏览器动画库,可在您的 Web 项目中使用。非常适合强调、主页、滑块和注意力引导提示。注意:Animate.css可以在uniapp中使用,并且兼容多端,源码放页面...

uniapp富文本编辑器editor的使用,复制可用

uniapp富文本编辑器editor的使用,复制可用

关于uniapp富文本编辑器editor的使用,我会把HTML,css,js三部分代码都完整列出来,其实也是一个总结,因为官方教程有些不是很清楚,这里总结一下,方便大家使用:1、html部分:<...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。