Auge: PHP array bearbeiten

Beitrag lesen

Hallo

Hallo, ich habe ein Multiarray mit Datum, Uhrzeit und Messwert. Nun möchte ich aber für jeden Tag nur einen Wert haben. Bei Tagen mit meheren Messwerten sollen diese gemittelt werden.

array:
  '01.01.2022', '08:00', 100
  '01.01.2022', '12:00', 101
  '01.01.2022', '16:00', 102
  '02.01.2022', '12:00', 101
  '03.01.2022', '08:00', 102
  '03.01.2022', '16:00', 104

Ich vermute richtig, wenn ich davon ausgehe, dass die eigentliche Struktur folgende ist?

array:
  ['01.01.2022', '08:00', 100],
  ['01.01.2022', '12:00', 101],
  ['01.01.2022', '16:00', 102],
  ['02.01.2022', '12:00', 101],
  ['03.01.2022', '08:00', 102],
  ['03.01.2022', '16:00', 104]
Ergebnis soll sein:
  '01.01.2022', 101
  '02.01.2022', 101
  '03.01.2022', 103

Gibt es dafür vielleicht eine passende PHP Funktion oder eine Kombination aus mehreren? Wenn nicht, wie könnte man das Problem elegant lösen?

Du brauchst die Information zu allen Werten und deren Anzahl, aufgesplittet nach Tagen. Dazu kann dein Array in einer Schleife durchlaufen und die Informationen in ein neues Array umgepackt werden. Das Ergebnis könnte dann folgendermaßen aussehen.

array:
  ['01.01.2022'=>[101, 102, 103]],
  ['02.01.2022'=>[101]],
  ['03.01.2022'=>[101, 103]]

Der Schlüssel des äußeren Arrays ist das Datum (die Uhrzeiten brauchst du an der Stelle nicht), der Wert ist jeweils ein Array aller Werte des Tages. Damit hättest du sowohl alle Werte als (mit count($array['01.01.2022'])) auch die Anzahl der Werte. Der Rest ist Addition der Werte und die anschließende Division durch die Anzahl der Werte.

Ich hoffe nur, ich habe mich gerade nicht in der Syntax vertan. 😁

Tschö, Auge

--
200 ist das neue 35.