Thinkphp5コントローラツリーの分類

パブリック 関数getrtree(){ 
       
        $データ [] = 配列( 'ID' => 1、 'PID' => 0、 '名称' => '中国' );
        $データ [] = 配列( 'ID' => 2、 'PID' => 0、 '名称' => '美国' )。
        $データ [] = 配列( 'ID' => 3 'PID' => 0、 '名称' => '韩国' )。
        $データ [] = 配列( 'ID' => 4 'PID' => 1、 '名前' => '北京' )。
        $データ [] = 配列( 'ID' => 5 'PID' => 1、 '名称' => '上海' )。
        $データ [] = 配列( 'ID' => 6 'PID' => 1、 '名称' => '广西' )。
        $データ [] = 配列); $ツリー = $この - > build_tree($データ、0 );
        しますprint_r$ツリー
       
        );
        印刷(json_encode($ツリー)); 
       
    } 


    関数 findChild(&$のARR$のID ){
         $チャイルズ = 配列();
        foreachの$ ARR  として $ K => $ V ){
             場合$ V [ 'PID'] == $番号){
                 $チャイルズ [] = $ V 
            } 
        } 
        を返す $チャイルズを
    } 
   
    関数 build_tree($行$のROOT_ID ){
         $チャイルズ = $この - > findChild($行$のROOT_ID )。
        もし$チャイルズ)){
             リターン ヌル
        } 
        foreachの$チャイルズ として $ K => $ V ){
             $ rescurTree = $この - > build_tree($行$のV [ 'ID' ])。
            もしヌル!= $ rescurTree ){
                 $チャイルズ[ $ K ] [ 'チャイルズ'] = $ rescurTree 
            } 
        } 
        を返す $チャイルズを
    }

 

おすすめ

転載: www.cnblogs.com/fksdy/p/11490525.html