1. 程式人生 > 實用技巧 >PHP實現無限級分類

PHP實現無限級分類

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
                                        )

                                )

                        )

                )

        )

)