PHP-Arrays als JSON-Arrays kodieren
Das Dilemma der Konvertierung eines PHP-Arrays in ein JSON-Array statt in ein Objekt entsteht, wenn das PHP-Array hat nichtsequentielle Schlüssel. Standardmäßig interpretiert json_encode() Arrays als Objekte, wenn die Schlüssel nicht sequentiell sind.
Um dieses Problem zu beheben, ist es wichtig, die JSON RFC 8259-Spezifikation zu verstehen. Es definiert ein Array als eckige Klammern, die durch Kommas getrennte Werte einschließen. Um ein JSON-Array zu generieren, muss das PHP-Array daher aufeinanderfolgende numerische Schlüssel (0, 1, 2, ...) haben.
Im gegebenen Beispiel hat das PHP-Array die Schlüssel 0 und 2, aber nicht 1 . Diese nicht-sequentielle Schlüsselstruktur veranlasst json_encode(), das Array als Objekt zu behandeln.
Um dies zu beheben und das Array als JSON-Array zu kodieren, muss es neu indiziert werden nacheinander mit array_values(). Diese Funktion erstellt ein neues Array mit aufeinanderfolgenden numerischen Schlüsseln und wandelt das ursprüngliche Array effektiv in ein für die JSON-Codierung akzeptables Format um.
Der folgende Codeausschnitt zeigt, wie Sie array_values() verwenden, um das gewünschte Ergebnis zu erzielen:
echo json_encode(array_values($input));
Das obige ist der detaillierte Inhalt vonWie kann ich sicherstellen, dass mein PHP-Array als JSON-Array und nicht als Objekt kodiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!