2016-11-08 170 views
-3

對不起,我已閱讀了這麼多帖子來理解這一點,並最終讓我自己感到困惑!PHP數組從一個數組合併到另一個數組中的值

我有2列:

陣列1:

Array (

[0] => Array ([ID] => SI[Date] => 06/01/2016 [Month] => 1 [Tier1] => 2.188875 [Tier2] => [Tier3] => [Tier4] => [Delivery] => 0) 

[1] => Array ([ID] => SI[Date] => 06/01/2016 [Month] => 1 [Tier1] => 2.139 [Tier2] => 0 [Tier3] => 0 [Tier4] => 0 [Delivery] => 0) 

[2] => Array ([ID] => SI[Date] => 14/01/2016 [Month] => 1 [Tier1] => 0.201 [Tier2] => 0 [Tier3] => 0 [Tier4] => 0 [Delivery] => 0) 

) 

陣列2:(包含與送貨費的發票)

Array ( 
[SI000005] => 25 
[SI000010] => 15 
[SI000054] => 20 
[SI000069] => 0 
[SI000074] => 20 
[SI000076] => 16 
) 

我需要在那裏SI00000x匹配更新陣列1並將數組2中的值推入數組1中的[Delivery]值。

我是確定這是直截​​了當的,但我嘗試的任何事情都需要一個年齡或崩潰!

請幫忙!

回答

3

您可以使用此(注意ampersand):

foreach ($arr1 as &$rec) { 
    if (isset($arr2[$rec['ID']])) $rec['Delivery'] = $arr2[$rec['ID']]; 
} 
+0

感謝您的幫助!工作過一種享受。 – Giles

0
foreach ($array1 as &$a1) { 
    if (isset($array2[$a1['ID']])) { 
     $a1['Delivery'] = $array2[$a1['ID']]; 
    } 
} 
+1

更新。這些變化將持續在循環之外。 – Jaime

1

試試這個(使用參考)

foreach ($array1 as &$a1) { 
    if(isset($array1[$a1['ID']])) $a1['Delivery'] = $array1[$a1['ID']]; 
} 
+0

爲什麼OP要「試試這個」?一個好的答案***將總是解釋所做的事情以及爲什麼這樣做,不僅是爲了OP,還是爲了將來訪問SO。 –

相關問題