Jörg Reinholz: JSON nach Vorlage erstellen

Beitrag lesen

Moin!

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:

{
  "2015": [1,2,2,1,9,0,3,0,0,4,3]
}

Immer schön dumm stellen. DAS ist die Kunst des Programmierens!

$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;$Jahr++ ) {
    #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