thinkphp用递归怎么实现无限分类
递归函数即为自调用函数,在函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调用函数本身,若不满足则终止本函数的自调用,然后把目前流程的主控权交回给上一层函数来执行,可能这样给大家讲解,还是很难明白。
思路:
先建立对应的数据库和表:
请注意pid和id的外键关联关系,最顶级的pid为0。
class Tree{
//定义一个空的数组
static public $treeList = array();
//接收$data二维数组,$pid默认为0,$level级别默认为1
static public function tree($data,$pid=0,$level = 1){
foreach($data as $v){
if($v['pid']==$pid){
$v['level']=$level;
self::$treeList[]=$v;//将结果装到$treeList中
self::tree($data,$v['id'],$level+1);
}
}
return self::$treeList ;
}
}
接下来方法中调用
public function index(){
$res=M('cate')->select();
$res=Tree::tree($res);
$this->cate=$res;
$this->display();
}
台模板页面中展示出来: