首页 > 技术文章 > tp 递归菜单列表【树状】

gwhm 2020-09-23 21:36 原文

public function getPrivilegeList($moduleType){
        $authRuleModel = M('auth_rule');
        $data = $authRuleModel->where(['module_type' => $moduleType])->select();
        $res = $this->getChild($data);
        return $res;
    }

    public function getChild($data)
    {
        $tree = [];
        $newData = [];
        //循环重新排列
        foreach ($data as $datum) {
            $newData[$datum['id']] = $datum;
        }
        foreach ($newData as $key => $datum) {
            if ($datum['pid'] > 0) {
                //不是根节点的将自己的地址放到父级的child节点
                $newData[$datum['pid']]['child'][] = &$newData[$key];
            } else {
                //根节点直接把地址放到新数组中
                $tree[] = &$newData[$datum['id']];
            }
        }
        return $tree;
    }

 

推荐阅读