PHP Array-werte zuordnen und mitteln
bearbeitet von
Lieber Paul1,
> Die Daten erhalte ich als csv-Datei und lese sie einfach in ein PHP array ein.
dann bist also Du selbst für die Struktur verantwortlich? OK, das macht die Sache leichter.
1. Du hast in der ersten Spalte „name“ offenbar ein Tagesdatum. Dieses willst Du als Gruppe verstanden wissen.
2. Die Werte in der zweiten Spalte sind floats. Deren Schnitt lässt sich schnell und schlank berechnen `array_sum($a)/count($a)`{:.language-php} fällt mir da ein.
> Gruppenwechsel ... schau ich mir an...
Genau, und danach hast Du vielleicht folgende Struktur:
~~~ php
$csv_data = [
"01.01.2018" => [1.1, 1.3, 1.2, 1.2],
"02.01.2018" => [2.2, 2.4]
];
$averages = [];
foreach ($csv_data as $date => $values) {
if (count($values)) {
$averages[$date] = sprintf(
'%0.1f', // auf eine Kommastelle gekürzt
array_sum($values) / count($values)
);
} else {
// nicht durch 0 teilen!
$averages[$date] = '?'; // oder $averages[$date] = 0;
}
}
print_r($averages); // Array(
[01.01.2018] => 1.2
[02.01.2018] => 2.3
)
~~~
Liebe Grüße
Felix Riesterer