laravel8 封装递归函数 树状图

本文介绍了两种在数据组织中构建树状结构的方法:`tier` 函数用于封闭方法实现,`get_tree_list` 则通过引用方式实现父子级树状结构。这两个函数在前端调用时,能帮助展示层次分明的数据,便于理解和操作。它们在处理如文件系统、组织结构等需要层级关系的数据时非常实用。
摘要由CSDN通过智能技术生成
if (!function_exists("tier")){
    //封闭方法
    function tier($arr,$pid=0,$level=1){
        //建立空数组
        static $res=[];
        //循环
        foreach ($arr as $val){
            //判断
            if ($val['pid']==$pid){
                $val['level']=$level;
                //存入数组中
                $res[]=$val;
                //递归调用查找后代
                tier($arr,$val['主键id'],$level+1);
            }
 
        }
        return $res;
    }
}

// 前端调用

{!!str_repeat('   ',($val['level']-1)*2)!!}{{"├ ".$val['access_name']}}

树状图

if(!function_exists('get_tree_list')){
    //引用方式实现 父子级树状结构
    function get_tree_list($list){
        //将每条数据中的id值作为其下标
        $temp = [];
        foreach($list as $v){
            $v['son'] = [];
            $temp[$v['主键id']] = $v;
        }
        //获取分类树
        foreach($temp as $k=>$v){
            $temp[$v['pid']]['son'][] = &$temp[$v['主键id']];
        }
        return isset($temp[0]['son']) ? $temp[0]['son'] : [];
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值