PHP阵列组由一个领域,总结两个字段 [英] PHP Array Group by one field and Sum up two fields

查看:83
本文介绍了PHP阵列组由一个领域,总结两个字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的数组:

Array ( 
[0] => Array ( [date] => 28-10-2012 [total] => 100 [earn] => 10 ) 
[1] => Array ( [date] => 28-12-2012 [total] => 100 [earn] => 10 ) 
[2] => Array ( [date] => 28-12-2012 [total] => 90 [earn] => 9 ) 
[3] => Array ( [date] => 28-12-2012 [total] => 315.35 [earn] => 31.535 ) 
[4] => Array ( [date] => 02-01-2013 [total] => 1500 [earn] => 150 ) 
[5] => Array ( [date] => 02-01-2013 [total] => 1000 [earn] => 100 ) 
)

欲望输出:

Array ( 
 [0] => Array ( [date] => 28-10-2012 [total] => 100 [earn] => 10 ) 
 [1] => Array ( [date] => 28-12-2012 [total] => 505.35 [earn] => 505.535 ) 
 [2] => Array ( [date] => 02-01-2013 [total] => 2500 [earn] => 250 )  
)

我尝试了按日期为止设法组和总结只有一个字段有两个不同的数组,该方法

The method I tried so far manage to group by date and sum up only one field with two different array.

Array ( [28-10-2012] => 100 [28-12-2012] => 505.535 [02-01-2013] => 2500)

Array ( [28-10-2012] => 10 [28-12-2012] => 50.535 [02-01-2013] => 250 )

我所期待的,还是破解我的头这是从很大的不同。
可能是什么方法?

Which are very different from what I am looking for, still cracking my head. What are the possible method??

推荐答案

我不认为这是对于一个内置函数,你必须自己写的算法。事情是这样的:

I don't think there is a builtin function for that, you have to write the algorithm yourself. Something like this:

$result = array();
foreach ($array as $row)
{
  $result[$row['date']]['date'] = $row['date'];
  $result[$row['date']]['total'] += $row['total'];
  $result[$row['date']]['earn'] += $row['earn'];
}
$result = array_values($result);

这篇关于PHP阵列组由一个领域,总结两个字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆