PHP-Arrays als JSON-Arrays mit json_encode kodieren
In PHP wird die Funktion json_encode verwendet, um PHP-Datenstrukturen in ihre JSON-Gegenstücke zu konvertieren. Standardmäßig werden PHP-Arrays als JSON-Objekte codiert. Es gibt jedoch Szenarien, in denen die Codierung eines Arrays als JSON-Array erforderlich ist.
Problemstellung
Betrachten Sie das folgende PHP-Array:
$array = [ [ "id" => 0, "name" => "name1", "short_name" => "n1" ], [ "id" => 2, "name" => "name2", "short_name" => "n2" ] ];
Beim Aufruf von json_encode für dieses Array ist das resultierende JSON ein Objekt:
{ "0": { "id": 0, "name": "name1", "short_name": "n1" }, "2": { "id": 2, "name": "name2", "short_name": "n2" } }
Dies ist nicht das Gewünschte Ausgabe, da wir stattdessen ein JSON-Array wollen.
Lösung
Um ein PHP-Array als JSON-Array zu kodieren, muss das Array sequentiell sein, d. h. seine Schlüssel müssen fortlaufend sein Ganzzahlen beginnend bei 0. Im bereitgestellten Beispiel sind die Array-Schlüssel 0 und 2, was nicht sequentiell ist.
Um das Array sequentiell zu machen, können wir verwenden array_values-Funktion:
echo json_encode(array_values($array));
Dadurch wird das Array sequentiell neu indiziert und die folgende JSON-Ausgabe erzeugt:
[ { "id": 0, "name": "name1", "short_name": "n1" }, { "id": 2, "name": "name2", "short_name": "n2" } ]
Durch die Sicherstellung, dass das Array sequentiell ist, kodiert json_encode es korrekt als JSON-Array .
Das obige ist der detaillierte Inhalt vonWie kodiere ich ein PHP-Array als JSON-Array mit „json_encode'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!