2016-06-08 107 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