>  기사  >  백엔드 개발  >  PHP如何递归保存到一个数组里面

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

WBOY
WBOY원래의
2016-06-06 20:23:291337검색

源数据如下。

<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>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.