TP5无限级分类
今天工作正好遇到无限极分类 本来打算在网上找一个 但是无奈 找的那个好像有问题( 原文链接) 没有办法只好在源代码的基础上自己修改了,弄了半天总算是弄好了,本篇为TP5的写法 其他的也可以用 只是可能具体的变量声明或者什么的有所不同,废话不多说,上代码
/**
* 无限极分类
*/
public $arr = [];//一定要在方法外面声明不然每次调用都会初始化会对结果造成影响
public function tree($data,$fid=0,$level=0){
foreach($data as $k => $v){
if($v['nav_fid'] == $fid){
$v['level'] = $level;
//添加缩进效果
$v['nav_name'] = str_repeat("|--", $level).$v['nav_name'];
$this->arr[] = $v;
//一定要在这里传参的时候在将level+1,这样不会改变本层下一次循环的level,
//如果在方法体内使用level++,会就把本层下一次循环的level改变
$this->tree($data,$v['nav_id'],$level+1);
}
}
return $this->arr;
}
效果如下: