sd_5105633 2013-08-30 15:47 采纳率: 0%
浏览 909

php 二维数组合并 以一个数组为参照,比它多的项删除,比它少的项增加,相同的增加

$a = array('01' => array('count'=>1, 'amount'=>100,'cesgu'=>33),
'02' => array('count'=>2, 'amount'=>200),
'03' => array('count'=>3, 'amount'=>250) );
$b = array('01' => array('count'=>4, 'amount'=>300),
'02' => array('count'=> 5, 'amount'=>400));

以$a 为参照
输出Array ( [01] => Array ( [count] => 5 [amount] => 400 [cesgu] => 33 ) [02] => Array ( [count] => 7 [amount] => 600 )
[03] => Array ( [count] => 3 [amount] => 250 ) )

如果以$b为参照的话
输出Array ( [01] => Array ( [count] => 5 [amount] => 400 [cesgu] => 33 ) [02] => Array ( [count] => 7 [amount] => 600 )
请教下大家,

  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-01-16 11:26
    关注

    可以使用 array_replace_recursive() 函数来实现二维数组的合并,第一个数组作为参照,第二个数组的值将会覆盖第一个数组相同键的值。


    以$a 为参照:

    $result = array_replace_recursive($a, $b);
    

    以$b 为参照:

    $result = array_replace_recursive($b, $a);
    

    示例代码中输出的结果可能不准确,因为它并没有进行类似累加的操作,如果你需要累加操作,需要额外遍历数组并进行相应的计算操作。

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器