- Array nach Jahrzehnten zusammenfassen.
Fünf
- php
0 dedlfix0 Danke
Fünf0 1UnitedPower0 dedlfix
0 Felix Riesterer
Hallo,
ich möchte aus einem Array das mehrere Jahreszahlen umfasst eine Berechnung erstellen die folgendes Ausgibt
1970 bis 1979 = 2 Eintäge 1980 bis 1989 = 1 Eintrag 1990 bis 1999 = 10 Einträge 2000 bis 2010 = 3 Einträge 2010 bis heute = 1 Eintrag
Die Datenquelle sieht wie folgend aus
$datensatz_aus_xml = array (
array (1971, "Ein wunderschönes Bergdorf"), array (1971, "Leben am Abgrund"), array (1986, "Das Gummitier")
) ...usw.
Ich denke ich muss es in einer Foreach Schleife machen und dann 5 Zähler mitführen. Eine bessere Lösung gibt es wohl nicht oder?
Tach!
ich möchte aus einem Array das mehrere Jahreszahlen umfasst eine Berechnung erstellen die folgendes Ausgibt Ich denke ich muss es in einer Foreach Schleife machen und dann 5 Zähler mitführen. Eine bessere Lösung gibt es wohl nicht oder?
Es geht funktional zu lösen. array_count_values() zählt ein Array, das mit array_map() aus dem "Array of Datensatz" in ein "Array of Jahrzehnt" umgeformt wurde. array_map() wird dazu eine anonyme Funktion übergeben, die aus dem Datensatz das Jahrzehnt extrahiert und zurückgibt.
dedlfix.
Vielen Dank, das hat mir sehr geholfen.
Hakuna matata!
Es geht funktional zu lösen. array_count_values() zählt ein Array, das mit array_map() aus dem "Array of Datensatz" in ein "Array of Jahrzehnt" umgeformt wurde. array_map() wird dazu eine anonyme Funktion übergeben, die aus dem Datensatz das Jahrzehnt extrahiert und zurückgibt.
Liebe Fünf,
$datensatz_aus_xml = array (
> array (1971, "Ein wunderschönes Bergdorf"),
> array (1971, "Leben am Abgrund"),
> array (1986, "Das Gummitier")
> )
...usw.
finde ich nicht gut und sogar kontraproduktiv! Warum nicht so?
$datensatz_aus_xml = array (
1971 => array(
"Ein wunderschönes Bergdorf",
"Leben am Abgrund")
),
1986 array (
"Das Gummitier"
)
);
Mir ist jetzt nicht klar, wie Du Deine Daten aus der XML-Datei heraus schnitzt, aber wenn Du diese Array-Struktur verwendest, dann kannst Du folgende Schleife benutzen:
$str = "";
foreach ($datensatz_aus_xml as $year => $data) {
$str .= sprintf(
'%1$d: %2$d Einträge'."\r\n"
$year,
count($data)
);
}
echo $str;
Du kannst natürlich beim Schnitzen Deines Arrays "$datensatz_aus_xml" auch anders vorgehen und die Jahrzehnte bereits beim Schnitzen zusammenfassen. Um Dir dabei zu raten müsste ich allerdings wissen, wie Du die XML-Daten auswertest...
Liebe Grüße,
Felix Riesterer.