2011-08-21 142 views
0

如何合并这两个数组:如何使用基于索引的PHP合并两个数组?

第一个数组:

[0] => Array 
    (
     [0] => Array 
      (
       [id] => 10 
      ) 

     [1] => Array 
      (
       [id] => 21 
      ) 

    ) 

第二个数组:

[1] => Array 
    (
     [0] => Array 
      (
       [id] => 11 
      ) 

     [1] => Array 
      (
       [id] => 22 
      ) 

     [2] => Array 
      (
       [id] => 13 
      ) 

    ) 

我想要得到的结果是:

[0][id]=>10 
[1][id]=>11 
[2][id]=>21 
[3][id]=>22 
[4][id]=>13 
+0

am我想对你使用我从第一,然后从第二,然后从第一,然后从第二? – RiaD

回答

3
$array1 = array(
    array('id' => 10), 
    array('id' => 21), 
); 
$array2 = array(
    array('id' => 11), 
    array('id' => 22), 
    array('id' => 13), 
); 
$new_array = array(); 

$length = max(count($array1), count($array2)); 

for ($i = 0; $i < $length; $i++) 
{ 
    if (isset($array1[$i])) 
    array_push($new_array, $array1[$i]); 
    if (isset($array2[$i])) 
    array_push($new_array, $array2[$i]); 
} 
print_r($new_array); 

对我t他的成果:

Array (
    [0] => Array ([id] => 10) 
    [1] => Array ([id] => 11) 
    [2] => Array ([id] => 21) 
    [3] => Array ([id] => 22) 
    [4] => Array ([id] => 13) 
) 

编辑:二手最大优化有点作为里亚德说。 编辑2:忘了在很多i变量前面加$ ...

+1

它不是很好,计算一次数组count()两次,你可以使用max(count($ arr1),count($ arr2)) – RiaD

+0

我试过了,但它复制了最后一项。 – tiltdown

+1

我的坏主席先生,我正在寻找答案,谢谢! – tiltdown