无限极分类

简介: 简单的个人无限极分类
$arr = array(
            0=>[
                'id'=>1,
                'name'=>'科技',
                'pid'=>0,
            ],
            1=>[
                'id'=>2,
                'name'=>'人工智能',
                'pid'=>1,
            ],
            2=>[
                'id'=>3,
                'name'=>'美食',
                'pid'=>0
            ],
            3=>[
                'id'=>4,
                'name'=>'重庆小面',
                'pid'=>3
            ],
            4=>[
                'id'=>5,
                'name'=>'机器人',
                'pid'=>2
            ]
        );

public function  category($arr,$pid=0,$level=0){
        //定义一个静态变量,存储一个空数组,用静态变量,是因为静态变量不会被销毁,会保存之前保留的值,普通变量在函数结束时,会死亡,生长周期函数开始到函数结束,再次调用重新开始生长
        //保存一个空数组
        static $list=array();
        //通过遍历查找是否属于顶级父类,pid=0为顶级父类,
        foreach($arr as $value){
            //进行判断如果pid=0,那么为顶级父类,放入定义的空数组里
            if($value['pid']==$pid){
                //添加空格进行分层
                $arr['level']=$level;
                $list[]=$value;
                //递归点,调用自身,把顶级父类的主键id作为父类进行再调用循环,空格+1
                self::category($arr,$value['id'],$level+1);
            }
        }
        return $list;//递归出口
    }

$list = category($arr,0,0);

_

相关文章
|
7月前
|
安全 前端开发 Java
Springboot中如何优雅的进行字段以及业务校验
Springboot中如何优雅的进行字段以及业务校验
134 0
|
7月前
|
前端开发 Android开发 iOS开发
移动端自适应解决方案vw(以react为例)
移动端自适应解决方案vw(以react为例)
148 0
|
Java Shell 网络安全
springboot 远程调用shell脚本,环境为windows
本文是博主学习SpringBoot的记录,希望对大家有所帮助。
1105 0
springboot 远程调用shell脚本,环境为windows
|
安全 Java 测试技术
Netflix 开源用于 Spring Boot的 GraphQL 服务框架DGS
Netflix 公司着力开发的 Domain Graph Service(DGS)框架现已正式成为开源项目。DGS 框架简化了针对独立与联合 GraphQL 服务的 GraphQL 实现。而在高强度的现实锤炼之后,这套框架也变得愈发稳定强健。
Netflix 开源用于 Spring Boot的 GraphQL 服务框架DGS
|
7月前
|
数据库
如何解决逻辑删除is_del与数据库唯一约束冲突
如何解决逻辑删除is_del与数据库唯一约束冲突
153 0
|
关系型数据库 Nacos 数据库
如何使用Docker部署Nacos服务?Nacos Docker 快速部署指南: 一站式部署与配置教程
如何使用Docker部署Nacos服务?Nacos Docker 快速部署指南: 一站式部署与配置教程
1269 1
|
缓存 Java
java把InputStream流写入到文件中
java把InputStream流写入到文件中
270 0
|
7月前
|
弹性计算 缓存 测试技术
2核4g服务器能支持多少人访问?阿里云2核4G服务器并发数测试
2核4g服务器能支持多少人访问?阿里云2核4G服务器并发数测试,2核4G服务器并发数性能测试,阿小云账号下的2核4G服务器支持20人同时在线访问,然而应用不同、类型不同、程序效率不同实际并发数也不同,2核4G服务器的在线访问人数取决于多个变量因素
|
JSON 算法 Java
Java常用的几个Json库
Java常用的几个Json库
253 0
|
存储 人工智能 Prometheus
面向GPT-4编程的时代来了:GitHub Copilot大升级,首次集成聊天功能
面向GPT-4编程的时代来了:GitHub Copilot大升级,首次集成聊天功能
696 0