工作中常用的php递归实现无限极分类的2种函数

在项目中我们常常用到无限极分类:

1.在下拉选择分类中,最简单的是将分类组装成二维数组,遍历一次即可:

 //获取排列好的二维数组(带等级)
 public function GetTree($arr,$pid,$step){
        global $tree;
        foreach($arr as $key=>$val) {
            if($val['parent_id'] == $pid) {
                $flg = str_repeat('|―',$step);//重复几次 根据等级不同重复次数不同
                $val['name'] = $flg.$val['name'];
                $val['level'] = $step;
                $tree[] = $val;
                $this->GetTree($arr , $val['id'] ,$step+1);
            }
        }
        return $tree;
    }

2.组装成多维数组:

   //分类函数 (分成带child的多维数组) 
    public function buildTree($rows,$root_id){
        $childs=$this->findChild($rows,$root_id);
        if(empty($childs)){
            return null;
        }
        foreach ($childs as $k => $v){
            $rescurTree=$this->buildTree($rows,$v['id']);
            if( null != $rescurTree){
                $childs[$k]['child']=$rescurTree;
            }
        }
        return $childs;
    }




    
    public function findChild(&$arr,$id){
        $childs=array();

        foreach ($arr as $k => $v){
            if($v['parent_id']== $id){
                $childs[]=$v;
            }
        }

        return $childs;
    }




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值