PHP数组数学,删除重复项并添加数组行

PHP数组数学,删除重复项并添加数组行,php,arrays,addition,Php,Arrays,Addition,我有一个包含两个值的数组,userID和一个事务值。userID不是唯一的,我想要一个相同值的列表/数组,只是“汇总”。意思是:如果一个用户ID出现的次数更多,那么我希望将第二个值(事务)添加到一起。我将发布一个例子 $a = array( 1 => 1, 1 => 2, 2 => 3, 2 => -17 ); 运行所需的任何函数后的结果是: $a = array( 1 => 3, 2 => -14 ); 因

我有一个包含两个值的数组,userID和一个事务值。userID不是唯一的,我想要一个相同值的列表/数组,只是“汇总”。意思是:如果一个用户ID出现的次数更多,那么我希望将第二个值(事务)添加到一起。我将发布一个例子

$a = array(
    1 => 1,
    1 => 2,
    2 => 3,
    2 => -17
);
运行所需的任何函数后的结果是:

$a = array(
    1 => 3,
    2 => -14
);
因此没有重复的userID,事务值被添加到userID的一个条目中


我从一个SQL数据库中获取这些值,所以如果我可以用SQL视图或其他方法解决这个问题,这也是一个有效的答案:-)

在SQL中,如果您的列是,id和value,您可以这样做

select sum(value) from table_name group by id
看看这个

$array = array_unique($array);

这样的数组不可能存在。。。如果两次分配密钥,则第二次分配将覆盖第一次分配。如上所述,您的数组将只包含
1=>2,2=>-17
,没有重复。如果您计划从数据库中检索类似于此的数据,请使用带有GROUP BY的数据库聚合函数来实现SELECT语句中所需的内容-1-这不可能工作,PHP中不可能存在这样的数组;它也无法达到OP想要的结果。请不要发布一个不可能达到OP想要的结果的答案。抱歉,这正是我所需要的。既然SQL可以为您完成所有工作,为什么还要寻找困难的解决方案呢。我再感谢你也不为过,我会记下你的答案和我选择的答案,等时间过去了。看来五分钟不够长。
$array = array_unique($array);