PHP實現無限級分類
阿新 • • 發佈:2020-10-26
PHP實現無限級分類
public function generateTree($items){ $tree = array(); foreach($items as $item){ if(isset($items[$item['pid']])){ $items[$item['pid']]['son'][] = &$items[$item['id']]; }else{ $tree[] = &$items[$item['id']]; } }return $tree; } public function fenleitest(){ $depart_list = [ 1 => ['id' => 1, 'grp_name' => '技術部', 'pid' => 0], 2 => ['id' => 2, 'grp_name' => '業務中臺', 'pid' => 1], 3 => ['id' => 3, 'grp_name' => '業務前臺', 'pid' => 1], 4 => ['id' => 4, 'grp_name' => '業務後臺', 'pid' => 1], 5 => ['id' => 5, 'grp_name' => '客服組', 'pid' => 2], 6 => ['id' => 6, 'grp_name' => '管理系統組', 'pid' => 2], 7 => ['id' => 7, 'grp_name' => '支付組', 'pid' => 2], 8 => ['id' => 8, 'grp_name' => '使用者組', 'pid' => 4], 9 => ['id' => 9, 'grp_name' => '司機組', 'pid' => 4], 10 => ['id' => 10, 'grp_name' => 'ios組', 'pid' => 3], 11 => ['id' => 11, 'grp_name' => 'android組', 'pid' => 3], ]; $depart_data = $this->generateTree($depart_list); print_r($depart_data); exit(); }
Array ( [0] => Array ( [id] => 1 [grp_name] => 技術部 [pid] => 0 [son] => Array ( [0] => Array ( [id] => 2 [grp_name] => 業務中臺 [pid] => 1 [son] => Array ( [0] => Array ( [id] => 5 [grp_name] => 客服組 [pid] => 2 ) [1] => Array ( [id] => 6 [grp_name] => 管理系統組 [pid] => 2 ) [2] => Array ( [id] => 7 [grp_name] => 支付組 [pid] => 2 ) ) ) [1] => Array ( [id] => 3 [grp_name] => 業務前臺 [pid] => 1 [son] => Array ( [0] => Array ( [id] => 10 [grp_name] => ios組 [pid] => 3 ) [1] => Array ( [id] => 11 [grp_name] => android組 [pid] => 3 ) ) ) [2] => Array ( [id] => 4 [grp_name] => 業務後臺 [pid] => 1 [son] => Array ( [0] => Array ( [id] => 8 [grp_name] => 使用者組 [pid] => 4 ) [1] => Array ( [id] => 9 [grp_name] => 司機組 [pid] => 4 ) ) ) ) ) )