JSON nach Vorlage erstellen
bearbeitet von Jörg ReinholzMoin!
> Ergebnismenge dieser Abfrage ist so etwas in dieser Art:
>
>
> ~~~
> Jahr Monat Anzahl
> 2015 1 1
> 2015 2 2
> 2015 3 2
> 2015 4 1
> 2015 5 9
> 2015 7 3
> 2015 10 4
> 2015 11 3
> ~~~
>
> Meine Frage:
> Wie verpacke ich dieses Ergebnis mit php so, dass folgendes Ergebnis an meine JS Anwendung gesendet wird:
~~~json
{
"2015": [1,2,2,1,9,0,3,0,0,4,3]
}
~~~
Immer schön **dumm stellen**. DAS **ist die Kunst des Programmierens!**
~~~php
$Jahr_min = 9999999;
$Jahr_max = -9999999;
# Deine Abfrage
# Dann für jede Zeile der Rückgabe ($ret)
# Frühestes Jahr nach einer uralten Methode ermitteln:
if ( $ret['Jahr'] < $Jahr_min ) { $Jahr_min = $ret['Jahr']; }
# Spätestes Jahr nach der selben uralten Methode ermitteln:
if ( $ret['Jahr'] > $Jahr_man ) { $Jahr_man = $ret['Jahr']; }
# im gewünschten JSON beginnen die Monate offenbar bei 0:
$ar[$ret['Jahr']][$ret['Monat'] - 1]=$ret['Anzahl'];
#dann:
# für jedes Jahr
for ( $Jahr=$Jahr_min; $Jahr<=$Jahr_max ) {
#für jeden Monat:
for ($Monat=1; $Monat <= 12; $Monat++) {
if ( empty( $ar[$Jahr][$Monat])) { $ar[$Jahr][$Monat] = 0; }
}
}
# und jetzt das json "bauen";
$json=json_encode($ar, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT);
~~~
Das ist ein Plan, kein fertiges Programm.
Jörg Reinholz