2014-12-04 44 views
3

我正在尋找一種方法將所有子陣列合併爲一個大陣列。將所有子陣列合併爲一個

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]),因爲我不知道有多少陣列其實有。所以我不能指定它們。

感謝

回答

6

如果只有兩個級別陣列,你可以使用

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

應該如果我理解你的問題,只要$數組不完全是空的

+0

簡單幹淨的,謝謝! – Bri 2014-12-04 21:19:07

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'; 

OUTPUT:

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

工作:

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); 
+0

很好的使用PHP 5.6 variadics – 2014-12-04 21:15:53

+0

你的回答同樣清楚,但Mark是第一個。謝謝! – Bri 2014-12-04 21:18:50