将所有子数组合并为一个

时间:2014-12-04 21:03:07

标签: php arrays

我正在寻找一种方法将所有子数组合并为一个大数组。

array (
    [0] = 
         [0] = '0ARRAY',
         [1] = '1ARRAY'
    [1] = 
         [0] = '2ARRAY',
         [1] = '3ARRAY'
)

进入

array (
    [0] = '0ARRAY', [1] = '1ARRAY', [2] = '2ARRAY', [3] = '3ARRAY'
)

不使用array_merge($array[0],$array[1])因为我不知道实际上有多少个数组。所以我无法指定它们。

由于

3 个答案:

答案 0 :(得分:18)

如果它只有两个级别的数组,则可以使用

$result = call_user_func_array('array_merge', $array);

只要$ array不是完全空的

就应该有效

答案 1 :(得分:15)

如果我理解你的问题:

php 5.6 +

$array = array(
  array('first', 'second'),
  array('next', 'more')
);
$newArray = array_merge(...$array);

输出:

array(4) { [0]=> string(5) "first" [1]=> string(6) "second" [2]=> string(4) "next" [3]=> string(4) "more" }

示例:http://3v4l.org/KA5J1#v560

php< 5.6

$newArray = call_user_func_array('array_merge', $array);

答案 2 :(得分:2)

$new_array = array();
foreach($main_array as $ma){
    if(!empty($ma)){
        foreach($ma as $a){
            array_push($new_array, $a);
        }
    }
}

您可以通过放置以下值来尝试:

$main_array[0][0] = '1';
$main_array[0][1] = '2';
$main_array[1][0] = '3';
$main_array[1][1] = '4';

<强>输出:

Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )