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

小天天天天    PHP    999+ 次    2017-05-08 03:22:31


上代码:

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;
    }
}



如果你觉得本篇文章对您有帮助,请打赏作者

上一篇: 解决PHP生成验证码无法显示的问题

下一篇: 提升Apache 网站访问速度的一些经验

最新评论

暂无评论

热门文章

最新评论

网站数据

网站文章数:481

今日UV/PV/IP:2/2/2

昨日UV/PV/IP:11/14 /10

TOP