Heim > Fragen und Antworten > Hauptteil
Ich habe ein Array wie dieses
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 ) )
Ich möchte nach Datum gruppieren und die Werte summieren
$output=array(); foreach($array as $values){ $date = $values[0]; $output[$d][1]+=$values[1]; }Das Ergebnis von
$output ist
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 ) )
Das ist alles in Ordnung, aber ich muss den Durchschnitt berechnen und nicht die Werte summieren. Meine Idee ist also, die Summe desselben Tages in einem foreach zu ermitteln und die Summe dann durch den Betrag desselben Tages zu dividieren. Für das Datum 28.06.2023 beträgt die Summe beispielsweise 5987 und die Menge 3, sodass das Ergebnis 5987/3 sein sollte.
Gibt es eine Möglichkeit, dies zu tun, oder eine andere Möglichkeit, den Durchschnitt in einem Foreach zu ermitteln?
P粉8072394162023-09-17 16:01:12
# 构建数组 $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);