2017-05-14 66 views
-2

我有兩個數組,並希望得到一個PHP推值陣列中的另一個

//first 

     [0] => Array (
     [drink] => A 
     [litres] => 100.05 
     ) 
    [1] => Array (
     [drink] => B 
     [litres] => 3943 
     ) 
    [2] => Array (
     [drink] => C 
     [litres] => 1.46 
     ) 


    //second  

     [0] => 22 
     [1] => 12 
     [2] => 16 

結果應該是:

[0] => Array (
    [drink] => A 
    [litres] => 100.05 
    [price] => 22 
    ) 
[1] => Array (
    [drink] => B 
    [litres] => 3943 
    [price] => 12 
    ) 
[2] => Array (
    [drink] => C 
    [litres] => 1.46 
    [price] => 16 
    ) 

我試圖與循環,合併等都是我應該找到在這個網站上。但我沒有得到它。

foreach ($arr as $array2) { 
    $array1[] = array('price' => $array2); 
} 

print_r($array1); 

我不明白

在此先感謝

使用 array_maparray_merge功能
+0

環路應該正常工作。向我們展示您的當前代碼。 – Rizier123

+2

歡迎來到Stack Overflow! SO不是免費的編碼服務。你必須嘗試自己解決問題。如果無法正常工作,請發佈您嘗試的內容,我們會幫助您解決問題。 – Barmar

+0

'code foreach($ arr as $ array2){ \t $ array1 [] = array('price'=> $ array2); } print_r($ array1);'是的,我試過了,但我沒有得到它 – pidecom

回答

0
$result = array_map(function($i, $j) { return array_merge($i, array('price'=>$j)); }, 
        $arr1, $arr2); 

demo on eval.in

0

簡短的解決方案:

$result = array_map(function($a, $b){ 
    return array_merge($a, ['price'=>$b]); 
}, $arr1, $arr2); 

print_r($result); 

輸出:

Array 
(
    [0] => Array 
     (
      [drink] => A 
      [litres] => 100.05 
      [price] => 22 
     ) 

    [1] => Array 
     (
      [drink] => B 
      [litres] => 3943 
      [price] => 12 
     ) 

    [2] => Array 
     (
      [drink] => C 
      [litres] => 1.46 
      [price] => 16 
     ) 
) 
0

其他的答案是正確的方法,我只是想表明它如何與foreach()迴路來完成:

代碼:

$a=[ 
    ["drink"=>"A","litres"=>100.05], 
    ["drink"=>"B","litres"=>3943], 
    ["drink"=>"C","litres"=>1.46] 
    ]; 
$b=[22,12,16]; 

foreach($a as $i=>$subarray){ 
    $a[$i]["price"]=$b[$i]; 
} 
var_export($a); 

這種方法不一行一行,但會稍微快一點,因爲它的函數調用較少,大多數人閱讀起來也會更容易。 (雖然我承認 - 我傾向於單行)注意,我的方法沒有聲明新的結果變量,它只是擴展了第一個數組。

輸出(如需要的話):

array (
    0 => 
    array (
    'drink' => 'A', 
    'litres' => 100.05, 
    'price' => 22, 
), 
    1 => 
    array (
    'drink' => 'B', 
    'litres' => 3943, 
    'price' => 12, 
), 
    2 => 
    array (
    'drink' => 'C', 
    'litres' => 1.46, 
    'price' => 16, 
), 
)