如何用php组合两个具有相同索引和值的数组? [复制]

2023-12-14

我有 2 个数组,如下所示:

$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
    ],
  ];

是否可以将上面的数组组合成这样:

Array(
 [0] => Array
  (
    'no_invoice' => 'INV0001',
    'product_code' => '1111111',
  )
 [1] => Array
  (
    'no_invoice' => 'INV0001',
    'product_code' => '1111112',
    'free_valie' => 839,
    'count' => 1240
  )
)

因此,如果数组具有相同的产品代码,那么它将像上面的示例一样加入。

我尝试过使用数组合并,array_merge($array1, $array2); 但结果是这样的:

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, using array_search查看该条目是否product_code也存在于$array2(通过查看product_code的列$array2提取使用array_column)。如果是,则合并这些值。请注意,我们使用&$val在 foreach 中,导致值通过引用传递,从而允许在循环中修改它

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);

Output:

Array
(
    [0] => Array
        (
            [no_invoice] => INV0001
            [product_code] => 1111111
        )

    [1] => Array
        (
            [no_invoice] => INV0001
            [product_code] => 1111112
            [free_valie] => 839
            [count] => 1240
        )

)

3v4l.org 上的演示

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用php组合两个具有相同索引和值的数组? [复制] 的相关文章

随机推荐

  • 如何在Canvas中专门绘制Shape

    我里面有一个形状Canvas 像这样
  • Safari 中如何允许跨域请求?

    我有从 localhost 运行的 webapp 因为调试 并且它发出跨域 AJAX 请求 我可以轻松地为 Chrome 设置标志 disable web security 并且 web 应用程序在 Chrome 中按预期工作 但我也需要为
  • MvvmCross - 从视图模型调用 Web 服务

    我是 MvvmCross 和 Android 开发的新手 我需要在视图模型中调用 POST 数据到 JSON Web 服务 然后 我需要在 UI 中显示 Web 服务的结果 我的视图模型的要点如下所示 public class MyView
  • 将网站的 URL 格式化为字符串,并在前面添加 http://

    我有一个评论系统 允许自动链接网址 我正在使用 cakephp 但解决方案更多的是 PHP 这就是正在发生的事情 如果用户输入完全限定的网址http or https 一切安好 但如果他们进入www scoobydoobydoo com它变
  • RequireJS:将路径设置为“忽略”

    我正在使用一个第三方库 通过 Bower 它声明了我不想要的依赖项 它只是样式 是否可以将该依赖项设置为 忽略 或某些此类值 e g define jquery dep i dont want function 在需要配置中 paths j
  • 多重继承 C++ 当基类共享相同的方法名称时,是否有一些限制?

    我以前从未在 C 中使用过多重继承 但我很好奇 因为我在一本书中看到了编织 bst 的实现 通过基类 List 和基类 BinarySearch 树的多重继承 现在我试图编一些愚蠢的例子来理解它是如何工作的 所以我想出了这个 class B
  • 如何在 PHP 中创建幻方?

    我想尝试用 PHP 创建一个魔方 即所有加起来等于相同值的数字网格 但我真的不知道从哪里开始 我知道创建幻方的许多方法 例如在固定位置开始 1 然后每次迭代都朝特定方向移动 但这并没有创建一个真正随机的魔方 而这正是我的目标 我希望能够生成
  • Java:在运行时检查类是否存在[重复]

    这个问题在这里已经有答案了 我正在开发一个依赖于第三方库的软件 由于许可协议 该库无法与软件一起提供 并且用户在启动程序时必须在本地拥有该库 有没有办法检查这个特定的库是否存在于类路径中并且可以加载 如果没有 我想提供一个对话框以允许用户指
  • 如何在 SQL Server 2008 中删除重复行?

    如何删除 SQL Server 2008 中的重复行 最简单的方法是使用 CTE 公用表表达式 当我有原始数据要导入时 我会使用这种方法 我清理它的第一件事是确保没有重复 我对每一行都有某种唯一的句柄 Summary WITH number
  • 如何将多个提交合并到另一个分支作为单个压缩提交?

    我有一个远程 Git 服务器 这是我想要执行的场景 对于每个错误 功能 我创建一个不同的 Git 分支 我继续使用非官方 Git 消息在该 Git 分支中提交代码 在顶级存储库中 我们必须使用官方 Git 消息针对一个错误进行一次提交 那么
  • 为什么 try except 块在 python 3.7 的 Visual Studio 代码中不起作用?

    实现 try except 块时 VS Code 无法识别指定的异常或与此相关的任何异常 前任 try x 1 0 except ZeroDivisionError print You cannot divide by zero 通过终端执
  • 从 contenteditable 填充并保存文本

    我正要开始写自己的富文本编辑器但需要知道是否可以填充文本区域以及如何保存 使用其中的数据 我目前正在使用 CKEditor 但它对于我想要的东西来说太笨重和太大 我将以此为基础 http jsfiddle net Kxmaf 6 我还需要对
  • 如何在自定义验证规则的 pass 函数中发送多个参数

    我正在实现一个自定义验证规则 该规则应该在自定义验证规则的传递函数中采用另一个带有属性和值的参数 当我们在编写自定义验证时实现 Rule 接口时 它不允许我们在 pass 函数中添加第三个参数 但我需要第三个参数 此外 如果有人能够指导我在
  • PLS-00428:此 SELECT 语句中需要 INTO 子句

    我想将 Rownum 存储为变量 而不是使用昂贵的 Join 我需要从 Select 语句中获取此值 因为 Rownum 在不同环境中会有所不同 因此它不能是代码中的文字字符串 对于上下文 此查询在 Oracle Siebel CRM 模式
  • 为什么 不起作用?

    我使用JSF 2 0 hibernate validator4 2 jarvalidation api jar tomcat和Eclipse I put Size min 3 message xxx ManagedBean 中的注释和
  • 构造类对象后执行代码

    我希望通过让每个子类在父类保存的列表中注册自己来创建给定类的所有子类的列表 即如下所示 class Monster object monsters list class Lochness Monster Monster monsters a
  • 如何使用knitr在代码块内的子图之间插入分页符

    我有以下 R arkdown 代码 output pdf document default keep tex yes header includes usepackage subfig r setup include FALSE knitr
  • Lambda 不将消息放入 dlq

    我只是想测试 Lambda 的 DLQ 但我不明白为什么消息没有放在上面 我的代码只做了一件事throw new Exception Test 第一个错误是可以理解的 我试图使用按钮同步执行此操作Test 之后我设置Kinesis并开始在其
  • 具有多个数组的 Foreach 循环[重复]

    这个问题在这里已经有答案了 这就是我要的 foreach POST something as something foreach POST example as example query mysql query INSERT INTO t
  • 如何用php组合两个具有相同索引和值的数组? [复制]

    这个问题在这里已经有答案了 我有 2 个数组 如下所示 array1 0 gt no invoice gt INV0001 product code gt 1111111 1 gt no invoice gt INV0001 product