ThinkPHP 无限递归
无限递归
其中 pid 的所属父级的 id
1.第一种
public function getcatebypid($pid)
{
$data = Db::table("cates")->where("pid", $pid)->select();
$res = [];
//遍历 递归
foreach ($data as $key => $value) {
// 代码段:核心点
$value['shop'] = $this->getcatebypid($value['id']);
$res[] = $value;
}
return $res;
}
调用$this->getcatebypid(0);
2.第二种
function getList($brr, $pid = 0, &$arr = [], $level = 1)
{
foreach ($brr as $v) {
if ($v['pid'] == $pid) {
$v['level'] = $level;
$arr[] = $v;
getList($brr, $v['id'], $arr, $level + 1);
}
}
return $arr;
}
调用getList(db("user)->select(),$user['role_id']);
页面处理{:str_repeat('|——',$vo.level)}{$vo.name}
适用于第二种方法
本作品采用《CC 协议》,转载必须注明作者和本文链接
Markdown
排版,有待改进@wml123 方法 2 中性能损失严重
假设,
$brr
体量是 n,那就要循环 n*(n+1) 次。