thinkphp5 递归实现菜单栏

百度都是一个抄一个,谁抄谁的也不知道,对我没有一点用,最终我也抄了一个,改造了一下,跑的通

最终截图

代码  代码可直接复制,可以直接运行, 最后访问的 接口是 如:127.0.0.1:**/index/index/getDg

class Index
{
    private static function arr(){
        $rows = array(
            array(
                'id'=>'1',
                'name'=>'一级菜单',
                'pid'=>'0',
                'path'=>'0',
            ),
            array(
                'id'=>'2',
                'name'=>'二级菜单',
                'pid'=>'0',
                'path'=>'0',
            ),
            array(
                'id'=>'3',
                'name'=>'一级菜单-1',
                'pid'=>'1',
                'path'=>'0-1',
            ),
            array(
                'id'=>'4',
                'name'=>'二级菜单-1',
                'pid'=>'2',
                'path'=>'0-2',
            ),
            array(
                'id'=>'5',
                'name'=>'一级菜单-1-1',
                'pid'=>'3',
                'path'=>'0-1-3',
            ),
            array(
                'id'=>'6',
                'name'=>'二级菜单-1-1',
                'pid'=>'4',
                'path'=>'0-2-4',
            ),
            array(
                'id'=>'7',
                'name'=>'二级菜单-1-2',
                'pid'=>'4',
                'path'=>'0-2-4',
            ),
            array(
                'id'=>'8',
                'name'=>'三级菜单',
                'pid'=>'0',
                'path'=>'0',
            ),
            array(
                'id'=>'9',
                'name'=>'二级菜单-1-3',
                'pid'=>'4',
                'path'=>'0-2-4-6',
            ),
            array(
                'id'=>'10',
                'name'=>'三级菜单-1',
                'pid'=>'8',
                'path'=>'0-8',
            ),
        );
        return $rows;
    }

    // 递归子级
    public function findchild(&$arr,$id){
        $childs=array();
        foreach ($arr as $key => $value) {
            if($value['pid']==$id){
                $childs[]=$value;
            }
        }
        return $childs;
    }
    // 查找当前级别的子级
    public function build_tree($root_id){
        $rows = $this->arr();
        $childs=$this->findchild($rows,$root_id);
        if(empty($childs)){
            return null;
        }
        foreach ($childs as $key => $value) {
            $rescurTree=$this->build_tree($value['id']);
            if(null != $rescurTree){
                $childs[$key]['childs']=$rescurTree;
            }
        }
        return $childs;
    }
    public function getDg(){
        $dg = $this->build_tree("0");
        return json($dg);
    }

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值