2016-06-08 103 views
2

初始陣列看起來像這樣:移調轉換多維陣列的列中的值成扁平狀陣列

$arInitial = Array(
    0 => Array(1,2,3), 
    1 => Array(3,4), 
    2 => Array(5,6,7,8), 
    3 => Array(9) 
); 

所得陣列應該是:

Array(1,3,5,9,2,4,6,3,7,8); 

我考慮而(1)環,但沒有。有任何想法嗎?

+0

所以這不僅僅是排序。你也想把幾個數組合併成一個數組。 – Jocelyn

+0

@Jocelyn我同意,這不僅僅是排序。我需要一些想法我怎麼能實現這個 –

+0

一個循環是我看到的唯一選擇 – 2016-06-08 00:13:54

回答

4

這裏有無數的方法來得到這個,還有已經陣列咒語功能的集合,它這樣做,我只是找不到DUP問題還,但另一種方式就是array_shift每批次:

$result = array(); 
$max = count($arInitial); 
for($i = 0; $i < $max; $i++) { 
    foreach($arInitial as &$a) { 
     if(!empty($a)) { 
      $e = array_shift($a); 
      $result[] = $e; 
     } 
    } 
} 
+0

似乎是一個很好的解決方案,它的工作原理!謝謝! –

1

你應該嘗試兩種功能:

也許你想要的東西,像

$finalArray = array(); 
foreach($arInitial as $array){ 
    $finalArray = array_merge($finalArray, $array); 
} 

var $finalArray = array_unique($finalArray , SORT_NUMERIC); 

這樣,你應該得到你想要的結果。

+0

var $ finalArray? – strangeqargo