首页 > 其他分享 >无限极分类--递归法

无限极分类--递归法

时间:2022-08-18 11:01:27浏览次数:53  
标签:递归 -- tree pid item 无限极 array data

 /**
     * 无限极分类
     * @param array $data 可迭代数组
     * @param int $pid 父级id
     * @return array
     */
    public static function getTree(array $data,$pid = 0): array
    {
        $tree = [];
        foreach ($data as &$item){
            if ($item['pid'] === $pid){
                $item['children'] = self::getTree($data,$item['id']);
                $tree[] = $item;
            }
        }
        return $tree;
    }

  

标签:递归,--,tree,pid,item,无限极,array,data
From: https://www.cnblogs.com/coder-yang/p/16597941.html

相关文章

  • weblogic11g打补丁,应用出现乱码
    解决办法:1、找到域下的这个路径:autodeploy\manager\WEB-INF里的web.xml文件,先备份好,再添加以下语句:  <context-param><param-name>weblogic.httpd.inputCharset./*......
  • javascript 执行机制(同步、异步、微任务、宏任务)
    一、关于javascriptJS是一门单线程语言,这意味着所有的任务都需要排队,前一个任务结束才会执行后一个任务如果前一个任务耗时很长,后一个任务就不得不一直等着。这样所导致的......
  • 哈希表4:两数之和(1)
    本题如下:(链接:https://leetcode.cn/problems/two-sum/)题目:给定一个整数数组nums 和一个整数目标值target,请你在该数组中找出和为目标值target 的那 两个 整数,并返......
  • Android 隐藏和显示软键盘
    1publicstaticvoidhideKeyboard(Viewview){2InputMethodManagerimm=(InputMethodManager)view.getContext()3.getSystemSer......
  • 评分管理系统环境部署:JDK1.8,nginx:1.14.0,redis 6.2.4 ,mysql 8.0.22
    背景:环境要求服务器上部署项目,需要JDK1.8,nginx:1.14.0,redis6.2.4,mysql8.0.22,使用在线安装版本或者docker版本;linux的版本是CentOs7.4(cat/etc/redhat-release);jdk......
  • Oracle数据库安装时,安装报错ins_emagent.mk
    安装oracle数据库过程中,通过图形界面安装,出现ins_emagent.mk报错提示  解决方法修改$ORACLE_HOME/sysman/lib/ins_emagent.mk,将$(MK_EMAGENT_NMECTL),修改为:$(MK_EMA......
  • 16 Django-extra查询
    知识点补充:如何只拿出,dt字段中的年月字段?知识点补充:extra有些时候复杂的sql语句,Django无法去对应。extra(select=None,where=None,params=None,tables=None,ord......
  • C++primer练习14.44-53
    练习14.44编写一个简单的桌面计算器使其处理二元计算doubleadd(doublea,doubleb){returna+b;}autosubtra=[](doublea,doubleb){returna-b;};stru......
  • Vue学习笔记4-项目开发规范及插件
    Vue学习笔记4-项目开发规范及插件一、安装插件首先搜索安装ESLint和Prettier这两个插件。这里对开发规范的配置仅配置ESLint,对代码格式的配置仅配置Prettier,用于代......
  • 51、案例—日式店铺易拉宝
    (1)画两个正方形形状,一个是填充颜色,另一个不填充颜色只是描边,然后把这两个形状旋转一下,最后对齐(用对齐工具V)就可以了。问题:两个图合在一起之后,中间的位置不是镂空的解决方......