无限极分类

 1 public function list_to_tree($list)
 2     {
 3         //创建基于主键的数组引用
 4         foreach ($list as $key => $data)
 5         {
 6             $refer[$data['id']]=& $list[$key]; //& 为引用,取出list[$key]的内存地址
 7         }
 8         //构建三层树 数组
 9         foreach  ($list as $key => $data)
10         {
11             $pid=$data['pid'];
12             if($pid==0)
13             {
14                 $tree[]=& $list[$key]; //没有父节点的情况,取出第一层,放入$tree
15             }
16             else 
17             {
18                 if(isset($refer[$pid]))
19                 {
20                     //重点难点。有父节点为二三层,实现的效果就是将其加入父节点之下
21                     $parent = & $refer[$pid]; //将其父节点内存地址赋予一个变量名称
22                     $parent['_child'][]=& $list[$key]; //在刚刚赋予的变量名称里加入子数组_child
23                 }
24             }
25         }
26         
27         return $tree;
28     }

 

posted @ 2016-11-13 11:17  对数螺旋线  阅读(192)  评论(0编辑  收藏  举报