PHP如何递归保存到一个数组里面

WBOY
リリース: 2016-06-06 20:23:29
オリジナル
1337 人が閲覧しました

源数据如下。

<code>Array
(
    [id] => 1
    [level] => CEO
    [children] => Array
        (
            [id] => 2
            [level] => CTO
            [children] => Array
                (
                    [id] => 3
                    [level] => CFO
                )
        )
)</code>
ログイン後にコピー
ログイン後にコピー

如何递归成如下格式呢?多谢各位。

<code>Array
(
    [0] => Array
        (
            [id] => 1
            [level] => CEO
        )
    [1] => Array
        (
            [id] => 2
            [level] => CTO
        )
    [2] => Array
        (
            [id] => 3
            [level] => CFO
        )
)
</code>
ログイン後にコピー
ログイン後にコピー

回复内容:

源数据如下。

<code>Array
(
    [id] => 1
    [level] => CEO
    [children] => Array
        (
            [id] => 2
            [level] => CTO
            [children] => Array
                (
                    [id] => 3
                    [level] => CFO
                )
        )
)</code>
ログイン後にコピー
ログイン後にコピー

如何递归成如下格式呢?多谢各位。

<code>Array
(
    [0] => Array
        (
            [id] => 1
            [level] => CEO
        )
    [1] => Array
        (
            [id] => 2
            [level] => CTO
        )
    [2] => Array
        (
            [id] => 3
            [level] => CFO
        )
)
</code>
ログイン後にコピー
ログイン後にコピー

<code><?php $arr = Array
            (
                'id' => 1,
                'level' => 'CEO',
                'children' => Array
                    (
                        'id' => 2,
                        'level' => 'CTO',
                        'children' => Array
                            (
                                'id' => 3,
                                'level' => 'CFO'
                            )
                    )
            );
    
    $new_arr = array();
    $i = 0;
    function recur($arr,&$new_arr,$i){
        $new_arr[$i]['id'] = $arr['id'];
        $new_arr[$i]['level'] = $arr['level'];
        
        if(isset($arr['children'])){
            $i++;
            $arr = $arr['children'];
            recur($arr,$new_arr,$i);
        }
    }
    
    recur($arr,$new_arr,$i);
    
    print_r($new_arr);</code>
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート