| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | 
							- <?php
 
- namespace app\common\util;
 
- class Tree
 
- {
 
-     /**
 
-      * 示例数组
 
-      * @var array|array[]
 
-      */
 
-     public array $array = [
 
-         ['id' => 1, 'name' => 'ha1', 'parent_id' => 0],
 
-         ['id' => 2, 'name' => 'ha2', 'parent_id' => 0],
 
-         ['id' => 3, 'name' => 'ha3', 'parent_id' => 0],
 
-         ['id' => 4, 'name' => 'ha4', 'parent_id' => 1],
 
-         ['id' => 5, 'name' => 'ha5', 'parent_id' => 1],
 
-         ['id' => 6, 'name' => 'ha6', 'parent_id' => 2],
 
-     ];
 
-     /**
 
-      * 1级转1维数组无限极分类
 
-      * @param array $array
 
-      * @param int $parent_id
 
-      * @return array
 
-      */
 
-     public function getTree(array $array, int $parent_id = 0): array
 
-     {
 
-         static $data = [];
 
-         foreach ($array as $key => $value) {
 
-             if ($value['parent_id'] == $parent_id) {
 
-                 $data[] = $value;
 
-                 unset($array[$key]);
 
-                 $this->getTree($array, $value['id']);
 
-             }
 
-         }
 
-         return $data;
 
-     }
 
-     /**
 
-      * 1级转2维数组数无限极分类
 
-      * @param array $array
 
-      * @return array
 
-      */
 
-     public function getTreeV2(array $array): array
 
-     {
 
-         $refer = [];
 
-         $tree = [];
 
-         foreach ($array as $key => $val) {
 
-             $refer[$val['id']] = &$array[$key];
 
-             $refer[$val['id']]['label'] = $val['name'];
 
-         }
 
-         foreach ($array as $k => $v) {
 
-             $pid = $v['parent_id']; //获取当前分类的父级id
 
-             if ($pid == 0) {
 
-                 $tree[] = &$array[$k]; //顶级栏目
 
-             } else {
 
-                 if (isset($refer[$pid])) {
 
-                     $refer[$pid]['children'][] = &$array[$k]; //如果存在父级栏目,则添加进父级栏目的子栏目数组中
 
-                 }
 
-             }
 
-         }
 
-         return $tree;
 
-     }
 
- }
 
 
  |