lmaster 4年前

修改理由:

重新排版

详细描述:

本论坛用的是 markdown 编辑器


此投稿已在 4年前 合并。

内容修改:

红色背景 为原始内容

绿色背景 为新增或者修改的内容

OldNewDifferences
11# 无限递归
2 >其中pid的所属父级的id
3 <pre>
4 1.第一种
5  public function getcatebypid($pid){
6     $data=Db::table("cates")->where("pid",$pid)->select();
7     $data1=[];
8     //遍历 递归
9     foreach($data as $key=>$value){
10         $value['shop']=$this->getcatebypid($value['id']);
11         $data1[]=$value;
12     }
13     return $data1;
14 }
15 调用
16 $this->getcatebypid(0);
17 </pre>
18 <pre>
19 2.第二种
20 function getList($brr,$pid=0,&$arr=[],$level=1){
21    foreach ($brr as $v){
22         if ($v['pid']==$pid) {
23            $v['level']=$level;
24            $arr[]=$v;
25            getList($brr,$v['id'],$arr,$level+1);
26         }
27    }
28     return $arr;
 2
 3其中 pid 的所属父级的 id
 4
 5#### 1.第一种
 6```
 7   public function getcatebypid($pid)
 8   {
 9       $data = Db::table("cates")->where("pid", $pid)->select();
 10       $res = [];
 11       //遍历 递归
 12       foreach ($data as $key => $value) {
 13           // 代码段:核心点
 14           $value['shop'] = $this->getcatebypid($value['id']);
 15           $res[]        = $value;
 16       }
 17       return $res;
 18   }
 19```
 20调用` $this->getcatebypid(0);`
 21
 22#### 2.第二种
 23
 24```php
 25function getList($brr, $pid = 0, &$arr = [], $level = 1)
 26{
 27   foreach ($brr as $v) {
 28       if ($v['pid'] == $pid) {
 29           $v['level'] = $level;
 30           $arr[]     = $v;
 31           getList($brr, $v['id'], $arr, $level + 1);
 32       }
 33   }
 34   return $arr;
2935}
30 调用
31 getList(db("user)->select(),$user['role_id']);
32 </pre>
 36```
 37调用`getList(db("user)->select(),$user['role_id']);`
3338
34 >页面处理
35 {:str_repeat('|——',$vo.level)}{$vo.name} 适用于第二种方法
 39页面处理`{:str_repeat('|——',$vo.level)}{$vo.name}` 适用于第二种方法