Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP数组按月份分组并求和_Php - Fatal编程技术网

PHP数组按月份分组并求和

PHP数组按月份分组并求和,php,Php,我有一个php数组,如第一幅图所示 我所需要的就是按月份获得sum组的值,如图所示 我知道这对我们大多数人来说可能很容易,但老实说,我找不到一个可行的方法来实现它 我尝试在google上搜索,但我找到的所有结果都是关于对数据库查询结果进行分组和求和的,而对我来说,我手里拿的是一个数组 请告诉我正确的功能。谢谢。假设包含所有日期的第一个数组称为$dates: $datesGroup=array(); foreach($dates as$date=>$value)$datesGroup[date

我有一个php数组,如第一幅图所示

我所需要的就是按月份获得sum组的值,如图所示

我知道这对我们大多数人来说可能很容易,但老实说,我找不到一个可行的方法来实现它

我尝试在google上搜索,但我找到的所有结果都是关于对数据库查询结果进行分组和求和的,而对我来说,我手里拿的是一个数组


请告诉我正确的功能。谢谢。

假设包含所有日期的第一个数组称为
$dates

$datesGroup=array();
foreach($dates as$date=>$value)$datesGroup[date('my',strottime($date))]=($datesGroup[date('my',strottime($date))]???0)+$value;
算法很简单:
循环遍历数组,然后增加date函数生成的右索引

日期都是yyyy mm dd格式的?从日期中删除日期,并将其用作结果数组中的键。然后将值添加到数组中相应的元素应该很容易。@Albertosinaglia Yes。所有日期均为yyyy-mm-dd。您还可以使用
strotime()
date()
将类似
2019-09-23
的日期转换为
2019年9月
。StackOverflow不是免费编码服务。你应该会的。请更新您的问题,以显示您已在某个应用程序中尝试过的内容。有关更多信息,请参阅,并使用:)此代码会引发诸如“未定义索引:2019年9月”之类的通知。应该检查索引是否已经存在。您的意思是执行类似以下操作:
$datesGroup[date('my',strottime($date))]=($datesGroup[date('my',strottime($date))]??0)+$value?是,或$group=date('my',strottime($date))$datesGroup[$group]=($datesGroup[$group]??0)+$value;