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

 我来答
黑马程序员
2017-06-24 · 改变中国IT教育,我们正在行动
黑马程序员
黑马程序员为大学毕业后,有理想、有梦想,想从事IT行业的年轻人改变自己的命运。黑马程序员成就IT黑马
向TA提问
展开全部

递归函数即为自调用函数,在函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调用函数本身,若不满足则终止本函数的自调用,然后把目前流程的主控权交回给上一层函数来执行,可能这样给大家讲解,还是很难明白。

思路:

先建立对应的数据库和表:

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

}


台模板页面中展示出来:

效果图:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式