PHP实现数组按分钟分组并对count值求和的方法
解决PHP数组按分钟维度分组求和的问题
你的代码存在两个核心问题:
- 用当前时间与目标时间的分钟差作为键,不符合你需要的「年-月-日 时:分」格式分组要求;
- 直接将原数组的
$value赋值给新数组,没有对count值进行累加,只会保留每组最后一个元素的count,而非求和结果。
以下是修改后的代码,完全匹配你的需求:
$finalArray = []; foreach ($array as $timeStr => $item) { // 将原时间字符串格式化为「年-月-日 时:分」作为分组键 $groupKey = date("Y-m-d H:i", strtotime($timeStr)); // 初始化分组或累加count值 if (!isset($finalArray[$groupKey])) { $finalArray[$groupKey] = ['count' => 0]; } $finalArray[$groupKey]['count'] += $item['count']; }
代码逻辑说明
- 遍历原数组的每个元素,将精确到秒的时间字符串格式化为分钟级别的时间,作为分组的唯一标识;
- 检查结果数组中是否已存在该分组,不存在则初始化分组的
count为0; - 将当前元素的
count值累加到对应分组的count中,最终得到按分钟分组求和后的数组。
内容的提问来源于stack exchange,提问作者user1405674
相关产品推荐
相关产品推荐

