【问题标题】:How to turn a php array of unlimited(unknown) depth into a single array? [duplicate]如何将无限(未知)深度的php数组转换为单个数组? [复制]
【发布时间】:2014-05-24 20:07:12
【问题描述】:
Array
(
    [72] => Array
        (
            [id] => 70
            [login] => test100
            [parent_id] => 1
            [type_id] => 1
            [position] => 1
            [user_id] => 72
            [children] => Array
                (
                )

        )

    [73] => Array
        (
            [id] => 72
            [login] => test101
            [parent_id] => 1
            [type_id] => 1
            [position] => 2
            [user_id] => 73
            [children] => Array
                (
                    [74] => Array
                        (
                            [id] => 74
                            [login] => test105
                            [parent_id] => 72
                            [type_id] => 1
                            [position] => 1
                            [user_id] => 74
                            [children] => Array
                                (
                                )

                        )

                )

        )

)

例如我有这个数组,但是深度可以是无限的,如何将一个无限或未知深度的多维数组转换为单个数组?

【问题讨论】:

    标签: php php-5.3 php-5.4


    【解决方案1】:
    <?php
    
    $aNonFlat = array(
    1,
    2,
    array(
        3,
        4,
        5,
        array(
            6,
            7
        ),
        8,
        9,
    ),
    10,
    11
    );
    
    $objTmp = (object) array('aFlat' => array());
    
    array_walk_recursive($aNonFlat, create_function('&$v, $k, &$t', '$t->aFlat[] = $v;'),     $objTmp);
    
    var_dump($objTmp->aFlat);
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-12
      • 2013-04-15
      • 1970-01-01
      • 2015-08-23
      • 1970-01-01
      • 2014-09-09
      • 1970-01-01
      相关资源
      最近更新 更多