我有一个像这样的数组
Array
(
[0] => Array
(
[0] => 2023-06-28
[1] => 5482
)
[1] => Array
(
[0] => 2023-06-28
[1] => 316
)
[2] => Array
(
[0] => 2023-06-28
[1] => 189
)
[3] => Array
(
[0] => 2023-06-29
[1] => 5
)
[4] => Array
(
[0] => 2023-06-29
[1] => 0
)
[5] => Array
(
[0] => 2023-06-30
[1] => 5788
)
[6] => Array
(
[0] => 2023-06-30
[1] => 1266
)
)
我想按日期分组并求和值
$output=array();
foreach($array as $values){
$date = $values[0];
$output[$d][1]+=$values[1];
}
$output的结果是
Array
(
[0] => Array
(
[0] => 2023-06-28
[1] => 5987
)
[1] => Array
(
[0] => 2023-06-29
[1] => 5
)
[2] => Array
(
[0] => 2023-06-30
[1] => 7054
)
)
这一切都没问题,但是我需要计算平均值,而不是求和值,所以我的想法是在foreach中获取同一天的总和,然后将总和除以同一天的数量。例如,对于日期2023-06-28,总和是5987,数量是3,所以结果应该是5987 / 3。
有没有办法可以做到这一点,或者在foreach中获得平均值的其他方法?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
# 构建数组 $output = []; foreach($array as $values){ $date = $values[0]; if(!isset($output[$date])) { $output[$date] = ['total' => 0, 'count' => 0]; } $output[$date]['total'] += $values[1]; $output[$date]['count']++; } # 计算总和 foreach($output as $date => $data){ $output[$date]['average'] = ($data['total'] / $data['count']); } print_r($output);