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