【发布时间】:2023-03-24 03:15:01
【问题描述】:
我正在尝试根据匹配的 order_id 合并两个数组:
数组1:
[0] => Array (
[order_id] => 44446
[carrier_tracking_code] => LB399189926US
)
[1] => Array (
[order_id] => 42816
[carrier_tracking_code] => 9205590221582717353066
)
[2] => Array (
[order_id] => 44490
[carrier_tracking_code] => 9205590221582717353080
)
[3] => Array (
[order_id] => 44507
[carrier_tracking_code] => 9205590221582717353073
)
[4] => Array (
[order_id] => 44437
[carrier_tracking_code] => 9205590221582717353042
)
[5] => Array (
[order_id] => 44519
[carrier_tracking_code] => 9205590221582717352939
)
[6] => Array (
[order_id] => 44561
[carrier_tracking_code] => 9205590221582717353028
)
[7] => Array (
[order_id] => 42985
[carrier_tracking_code] => 9205590221582717353035
)
[8] => Array (
[order_id] => 42673
[carrier_tracking_code] => 9205590221582717353097
)
[9] => Array (
[order_id] => 40197
[carrier_tracking_code] => 9205590221582717353059
)
[10] => Array (
[order_id] => 44733
[carrier_tracking_code] => 92055902215827
)
数组2:
[79] => Array (
[order_id] => 44925
[customers_email_address] => test@test.com
[customers_name] => JTest name
)
[80] => Array (
[order_id] => 44923
[customers_email_address] => test@test.com
[customers_name] => Test name
)
[81] => Array (
[order_id] => 44917
[customers_email_address] => test@test.com
[customers_name] => Test name
)
[82] => Array (
[order_id] => 44915
[customers_email_address] => a test@test.com
[customers_name] => Test name
)
我的目标是创建第三个数组,该数组与两者中的 order_id 列匹配,并在此基础上进行合并。
我尝试过 array_merge 和 array_merge_recursive 等,但那些只是将值添加到数组的末尾,我试图将它们合并到同一个数组键中。
我认为我需要一个 foreach 循环来检查 order_id = order_id 是否来自第二个数组,以及它是否确实将项目推送到第三个数组。但是我的问题是数组不是按 order_id 排序的,因此它们可能永远不会相同,因为如果有意义的话,foreach 循环会按数组的顺序查看数组。
【问题讨论】:
-
研究使用类似
array_column($array2, null, 'order_id')的东西按订单ID 索引第二个数组,然后使用foreach()。它可能与被索引的其他数组一起工作得更好,但试试吧。