递归思想下的无限级分类的实现

 
更多

上代码:

class CategoryModel extends Model{
    //获取所有的商品分类
    public function getCats(){
        $sql = "SELECT * FROM {$this->table}";
        $cats = $this->db->getAll($sql);
        return $this->tree($cats);
    }

    /**
     * 重新排序
     * @param  array  $arr 要排序的数组
     * @param  integer $pid 从哪里开始,默认是0,顶级开始
     * @param  integer $level 表示层级,默认是0,顶级
     * @return array     排好序的数组
     */
    public function tree($arr,$pid = 0,$level = 0){
        static $res = array();
        foreach ($arr as $v) {
            if ($v['parent_id'] == $pid) {
                //说明找到,保存起来
                //首先,需要将level保存到当前分类中
                $v['level'] = $level;
                $res[] = $v;
                //继续查找,递归,条件发生变化
                $this->tree($arr,$v['cat_id'],$level+1);
            }
        }
        //返回结果
        return $res;
    }
}

打赏

本文固定链接: https://www.cxy163.net/archives/2791 | 绝缘体

该日志由 绝缘体.. 于 2019年02月08日 发表在 未分类 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 递归思想下的无限级分类的实现 | 绝缘体

递归思想下的无限级分类的实现:等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter