【问题标题】:PHP array merge values from one array into another [closed]PHP数组将一个数组中的值合并到另一个[关闭]
【发布时间】:2017-03-22 16:04:14
【问题描述】:

对不起,我读了这么多帖子才弄明白这一点,终于把自己弄糊涂了!

我有 2 个数组:

数组 1:

Array (

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

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

[2] => Array ( [ID] => SI012387 [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] 值中。

我确信这很简单,但我尝试的每件事都需要时间或崩溃!

请帮忙!

【问题讨论】:

    标签: php arrays


    【解决方案1】:

    你可以使用这个(注意ampersand):

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

    【讨论】:

    • 感谢您的帮助!辛苦了。
    【解决方案2】:

    试试这个(使用参考)

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

    【讨论】:

    • 为什么 OP 应该“试试这个”? 好的答案将始终解释所做的事情以及为什么以这种方式完成,不仅是为了 OP,也是为了 SO 的未来访问者。跨度>
    【解决方案3】:
    foreach ($array1 as &$a1) {
        if (isset($array2[$a1['ID']])) {
            $a1['Delivery'] = $array2[$a1['ID']];
        }
    }
    

    【讨论】:

    • 已更新。更改将在循环之外持续存在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    • 2014-07-03
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    相关资源
    最近更新 更多