2017-04-11 105 views
3

我有一個兩個數組,需要從它們中獲取一個數組。 array_mergearray_map等。不給正確的結果。兩個數組到一個分塊

$array1 = [1,2,3,4,5]; 
$array2 = [a,b,c,d,e]; 

我需要$array3 = [[1,a], [2,b], [3,c]] ...

什麼是得到這一結果的最佳方式?

+0

是這兩個陣列的長度是相等的?如果是這樣使用'for'循環 –

回答

6

使用array_map(null, $arr1, $arr2)你可以達到這個效果。
http://php.net/manual/en/function.array-map.php

php > $q = array_map(null, $array1, $array2); 
php > print_r($q); 
Array 
(
    [0] => Array 
     (
      [0] => 1 
      [1] => a 
     ) 

    [1] => Array 
     (
      [0] => 2 
      [1] => b 
     ) 

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

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

    [4] => Array 
     (
      [0] => 5 
      [1] => e 
     ) 

) 
+1

謝謝!最好的解決方案 – MaoStream

1

for循環的方法是以下內容:

<?php 
$array1 = [1,2,3,4,5]; 
$array2 = ['a','b','c','d','e']; 
$array3 = array(); 
if(count($array1) == count($array2)) 
{ 
    for($i = 0; $i < count($array1); $i++) 
    { 
     $array3[] = [$array1[$i],$array2[$i]]; 
    } 
} 
else 
{ 
    die("SIZE MISMATCH"); 
} 

echo '<pre>'; 
print_r($array3); 

並且輸出是:

Array 
(
    [0] => Array 
     (
      [0] => 1 
      [1] => a 
     ) 

    [1] => Array 
     (
      [0] => 2 
      [1] => b 
     ) 

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

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

    [4] => Array 
     (
      [0] => 5 
      [1] => e 
     ) 

)