thinkphp 中实现无限极分类方法

无限极分类


//分类列表

public function lst(){

$category=new CategoryModel; //引用模型等于一个变量


$data=$category->categorytree(); //查询所有分类 -- 模型的方法

$this->assign('c_list',$data); //模板变量复制

return $this->fetch();

}
//模型方法

//无限极分类的树形结构方法

public function categorytree(){

$categoryres=$this->select(); //自己查询等于$categoryres变量

return $this->sort($categoryres); //自己指向 sort方法带上 $categoryres变量

}


//分类等级方法

public function sort($data,$pid=0,$level=0){

static $arr=array();


//foreach 循环执行这个方法

foreach ($data as $k => $v){

if($v['pid']==$pid){ //第一次循环等级一定为0

$v['level']=$level; //新的临时的一维数组记录等级

$arr[]=$v; //等级赋值给一维数组记录

$this->sort($data,$v['id'],$level+1); //每次有下以级别 执行此方法

//每循环一次foreach方法 level(等级)就加1

}

}

return $arr;

}
 
 
  

 

posted @ 2021-01-27 16:34  Fade。  阅读(261)  评论(0编辑  收藏  举报