How to combine 2 arrays that have the same index and value with php?(如何将具有相同索引和值的 2 个数组与 php 组合?)
问题描述
我有 2 个数组,如下所示:
I have 2 array like follows:
$array1 = [
'0' => [
'no_invoice' => 'INV0001',
'product_code' => '1111111',
],
'1' => [
'no_invoice' => 'INV0001',
'product_code' => '1111112',
]
];
$array2 = [
'0' => [
'product_code' => '1111112',
'free_valie' => 839,
'count' => 1240
],
];
是否可以将上面的数组组合成这样:
Is it possible to combine arrays above to be like this:
Array(
[0] => Array
(
'no_invoice' => 'INV0001',
'product_code' => '1111111',
)
[1] => Array
(
'no_invoice' => 'INV0001',
'product_code' => '1111112',
'free_valie' => 839,
'count' => 1240
)
)
所以,如果数组具有相同的产品代码,那么它将像上面的例子一样加入.
So, if array have same product code, then it will join like the example above.
我尝试过使用数组合并,array_merge($array1, $array2)
;但是结果是这样的:
I have been tried with use array merge, array_merge($array1, $array2)
;
But the result is like this:
Array(
[0] => Array
(
'no_invoice' => 'INV0001',
'product_code' => '1111111',
)
[1] => Array
(
'no_invoice' => 'INV0001',
'product_code' => '1111112',
)
[2] => Array
(
'product_code' => '1111112',
'free_valie' => 839,
'count' => 1240
)
)
推荐答案
此代码将满足您的需求.它使用 <遍历 $array1
中的每个值code>array_search 以查看条目的 product_code
是否也存在于 $array2
中(通过查看 product_code
使用 array_column<提取的
$array2
列/代码>).如果是,则合并这些值.请注意,我们在 foreach 中使用了 &$val
,导致值通过引用传递,从而允许在循环中修改它
This code will do what you want. It loops over each value in $array1
, using array_search
to see if the entrie's product_code
is also present in $array2
(by looking through the product_code
column of $array2
extracted using array_column
). If it is, the values are merged. Note that we use &$val
in the foreach, causing the value to be passed by reference which allows it to be modified in the loop
foreach ($array1 as &$val) {
if (($k = array_search($val['product_code'], array_column($array2, 'product_code'))) !== false) {
$val = array_merge($val, $array2[$k]);
}
}
print_r($array1);
输出:
Array
(
[0] => Array
(
[no_invoice] => INV0001
[product_code] => 1111111
)
[1] => Array
(
[no_invoice] => INV0001
[product_code] => 1111112
[free_valie] => 839
[count] => 1240
)
)
3v4l.org 上的演示
这篇关于如何将具有相同索引和值的 2 个数组与 php 组合?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何将具有相同索引和值的 2 个数组与 php 组合?
基础教程推荐
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- 在多维数组中查找最大值 2021-01-01