2013-02-08 66 views
0

好吧,所以我想实现的其实很简单。我只是不知道如何,并希望你能提供帮助。PHP数组数学,删除dublicates和添加数组行

我有一个数组,有两个值,userID和一个事务值。用户标识不是唯一的,我想要一个相同值的列表/数组,只是“总结”。含义:如果一个用户ID出现的次数更多,那么我希望将第二个值(事务)加在一起。我会举一个例子。

$a = array(
    1 => 1, 
    1 => 2, 
    2 => 3, 
    2 => -17 
); 

结果运行任何功能需要后,就是:

$a = array(
    1 => 3, 
    2 => -14 
); 

所以没有dublicate用户标识的,而交易价值将被添加到用户ID的一个条目。

我从一个SQL数据库中获取这些值,所以如果我可以用SQL视图或什么的,这也将去为一个有效的答案:-)

感谢很多提前解决这个问题!

+2

这样的一个数组不能存在...如果您分配了一个键两次,第二个分配将覆盖第一个键。如上所述,你的数组只包含'1 => 2,2 => -17'而没有模糊。 – 2013-02-08 20:52:21

+0

如果您打算从数据库中检索看起来像这样的数据,请使用带有GROUP BY的数据库聚合函数来实现SELECT语句中的所需内容 – 2013-02-08 20:55:08

回答

3

在SQL如果你的列说,身份证和价值,你可以做

select sum(value) from table_name group by id 
+0

这是一个解决方案。不要理解为什么人们会失望。 – cowboybebop 2013-02-08 20:58:37

+0

我看不到任何赞扬此答案;只有一个upvote – 2013-02-08 20:59:32

+0

对不起,正在看别的东西。 – cowboybebop 2013-02-08 21:01:08

-2
$a = array(
    1 => 1, 
    1 => 2, 
    2 => 3, 
    2 => -17 
); 

$b = array_unique($a); 
+1

-1 - 这可能无法工作,但像这样的数组无法工作存在于PHP中;也不会达到OP所要求的总和 – 2013-02-08 20:55:44

0

看一看这个

$array = array_unique($array); 

function.array-unique

+0

不要发布一个不可能实现OP想要的答案 – 2013-02-08 20:56:58