ThinkPHP无限分类模块设计

    public function catelist(){
        $cate=D('Cate');
        //var_dump($cate->gettree());exit;
        $cateres=$cate->gettree();
        $this->assign('cateres',$cateres);
       $this->display();
    }

上面是很普通的数据库显示api操作。就把数据库的数据显示出来。要设计无限分类,首先,在model层定义一个gettree方法

//商品分类中查询的公共方法---无限分类
    public function gettree($p = 0,$lv = 0){
        $t = array();
     //循环打印数据表里面的数据,此时循环出来的是一个个一维数组
foreach ($this->select() as $k => $v) {
       //检查此时的数据的parent_id是否=0
if($v['parent_id'] == $p){
         //子栏目缩进
$v['lv'] = $lv;
          //把数组赋值给$t
$t[] = $v; //检查.合并array_merge
     $t = array_merge($t,$this->gettree($v['cate_id'],$lv+1)); } } return $t; }

前台控制器中:之后显示的就i是无线分类模块了。如图

原文地址:https://www.cnblogs.com/Yirson/p/7146487.html