将多维数组转换为一维数组

Tom*_*eus 50 php arrays multidimensional-array

我已经在这一段时间里敲打了一会儿.

我有这个多维数组:

Array
(
    [0] => Array
        (
            [0] => foo
            [1] => bar
            [2] => hello
        )

    [1] => Array
        (
            [0] => world
            [1] => love
        )

    [2] => Array
        (
            [0] => stack
            [1] => overflow
            [2] => yep
            [3] => man
        )
Run Code Online (Sandbox Code Playgroud)

我需要得到这个:

Array
(
    [0] => foo
    [1] => bar
    [2] => hello
    [3] => world
    [4] => love
    [5] => stack
    [6] => overflow
    [7] => yep
    [8] => man
)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

我发现的所有其他解决方案都解决了具有不同键的多维数组.我的数组只使用简单的数字键.

dec*_*eze 79

array_reduce($array, 'array_merge', array())
Run Code Online (Sandbox Code Playgroud)

例:

$a = array(array(1, 2, 3), array(4, 5, 6));
$result = array_reduce($a, 'array_merge', array());
Run Code Online (Sandbox Code Playgroud)

结果:

array[1, 2, 3, 4, 5, 6];
Run Code Online (Sandbox Code Playgroud)

  • 第二个参数可能只是'array_merge'. (2认同)

hak*_*kre 39

PHP array_mergeDocs函数可以展平您的数组:

$flat = call_user_func_array('array_merge', $array);
Run Code Online (Sandbox Code Playgroud)

如果原始数组的深度高于2个级别,则PHP中的SPL RecursiveArrayIterator可用于展平它:

$flat = iterator_to_array(new RecursiveIteratorIterator(new RecursiveArrayIterator($array)), 0);
Run Code Online (Sandbox Code Playgroud)

请参阅:如何展平多维数组?.


Gre*_*xis 10

这就是它的全部内容:

foreach($array as $subArray){
    foreach($subArray as $val){
        $newArray[] = $val;
    }
}
Run Code Online (Sandbox Code Playgroud)


Don*_*nic 10

从PHP 5.6开始,这可以通过参数解包更简单地完成.

$flat = array_merge(...$array);
Run Code Online (Sandbox Code Playgroud)