0

これは多次元配列です:

$group_tree =  Array
   (
    [1] => Array
        (
            [id] => 1   
            [children] => Array
                (
                    [6] => Array
                        (
                            [id] => 6

                            [children] => Array
                                (
                                    [7] => Array
                                        (
                                            [id] => 7

                                            [children] => Array
                                                (
                                                )

                                        )


                                )

                        )

                )

        )


)

そして、これは私が使用する再帰関数( $group_id = 6 )です:

  public static function sub_group_tree( $group_tree , $group_id )
    {   

        foreach ( $group_tree as $key => $value ) { 

            echo  "<br>key : $key and group id is $group_id <br>"  ;

            if( (int) $key == $group_id ) {

                echo "check";

                return $value;

            }

            if( count($value['children']) ){            

                Group::sub_group_tree( $value['children'] ,  $group_id  ) ;
            }

        }


    }

奇妙なことは、「return」を null として返すことですが、「return」の代わりに「die($value)」を使用すると、$value が多次元配列の右側の部分として表示されます。「return」はループを中断せず、条件が満たされていてもループが継続するように見えます。関数の戻り値のテストで「check」という単語が出力されます。結果を見る:

key : 1 and group id is 6 
key : 6 and group id is 6 
check
null

私はphp 5.4でLaravelを使用しています

4

2 に答える 2