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; }
追风赶月莫停留,平芜尽处是春山