2016-11-08 173 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。 –

相关问题