PHP数组从一个数组合并到另一个数组中的值
问题描述:
对不起,我已阅读了这么多帖子来理解这一点,并最终让我自己感到困惑!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]值。
我是确定这是直截了当的,但我尝试的任何事情都需要一个年龄或崩溃!
请帮忙!
答
您可以使用此(注意ampersand):
foreach ($arr1 as &$rec) {
if (isset($arr2[$rec['ID']])) $rec['Delivery'] = $arr2[$rec['ID']];
}
答
foreach ($array1 as &$a1) {
if (isset($array2[$a1['ID']])) {
$a1['Delivery'] = $array2[$a1['ID']];
}
}
+1
更新。这些变化将持续在循环之外。 – Jaime
答
试试这个(使用参考)
foreach ($array1 as &$a1) {
if(isset($array1[$a1['ID']])) $a1['Delivery'] = $array1[$a1['ID']];
}
+0
为什么OP要“试试这个”?一个好的答案***将总是解释所做的事情以及为什么这样做,不仅是为了OP,还是为了将来访问SO。 –
感谢您的帮助!工作过一种享受。 – Giles