php 无限极分类,根据父级 找子级

/**
     * @param $data 数据(二维数组格式)
     * @param $adminId 管理员ID
     * @param $pid  权限的上级ID
     * @param int $level 水平变量 默认为 1 自增。
     * @return array|\Illuminate\Http\JsonResponse
     * 左侧导航,运用无限极分类实现、(循环的方式)
     */
    public function leftMenu($data, $adminId,$pid,$level = 1){
        try{
            $subs = array();
            //使用递归方式,循环左侧导航。
            foreach ($data $k => $v) {
                if($v->pid == $pid){
                    $v->level=$level;
                    $subs[]=[
                        'id' => $v->id,
                        'admin_name' => $v->name,
                        'role_id' => $v->role_id,
                        'pid' => $v->pid,
                        'title' => $v->title,
                        'urls' => $v->urls,
                        'level' => $level
                    ];
                    $subs = array_merge($subs,self::leftMenu($adminId,$v->id,$level+1));
                }
            }
            return $subs;
        }catch (\Exception $e){
            return response()->json(['message' => $e->getMessage()]);
        }
    }

因为使用的是laravel框架 所以我在foreach  循环出来的数据是对象格式的数组 就用到了 -> 

posted @ 2018-05-08 16:16  Func~  阅读(437)  评论(0编辑  收藏  举报