php - 合并两个数组,但将重复键的值添加在一起

标签 php arrays duplicates associative

我有两个数组,$ids 和 $quants(库存商品的 ID 和数量)需要合并,但不应替换或删除重复项,而应将它们的值相加。

目前我正在使用 array_combine(),但这意味着在存在多个相同 id 的情况下会丢失一些数量。

例如

$ids = Array(1, 1, 2, 3);
$quants = Array(10, 20, 30, 40);

期望的输出:

$combined = Array(
[1] => 30
[2] => 30
[3] => 40
)

预先感谢您的任何建议

最佳答案

$ids = Array(1, 1, 2, 3);
$quants = Array(10, 20, 30, 40);

$a = array_unique($ids);
$a = array_combine($a, array_fill(0, count($a), 0));

foreach($ids as $k=>$v) {
  $a[$v] += $quants[$k];
}

print_r($a);

关于php - 合并两个数组,但将重复键的值添加在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36828117/

相关文章:

php - 如何在一个sql查询中加入3个表?

php - mysql/php 选择行并发送电子邮件不起作用

php - 如何在 Smarty 中合并两个字符串?

Javascript:使用变量构建数组

javascript - $(selector).each 在 Laravel 的表行上

python - NumPy 数组元素未更新

javascript - 如何按键对对象数组进行分组?

mysql - 如何在 MySQL 中选择重复行的第一个(但重复数据位于不同列中)

sql - 在SQL中,如何删除基于多列的重复行?

mysql - 复杂的SQL : How to filtrate duplicate data about technical support and compute rank of order