中易网

thinkphp用递归怎么实现无限分类

答案:1  悬赏:70  
解决时间 2021-01-13 18:33
  • 提问者网友:遁入空寂
  • 2021-01-12 18:33
thinkphp用递归怎么实现无限分类
最佳答案
  • 二级知识专家网友:想偏头吻你
  • 2021-01-12 20:02
递归函数即为自调用函数,在函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调用函数本身,若不满足则终止本函数的自调用,然后把目前流程的主控权交回给上一层函数来执行,可能这样给大家讲解,还是很难明白。
思路:
先建立对应的数据库和表:

请注意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();
}


台模板页面中展示出来:
效果图:

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息