Heim > Artikel > Backend-Entwicklung > Wie kodiere ich ein PHP-Array mit nicht aufeinanderfolgenden numerischen Schlüsseln als JSON-Array?
Beim Codieren eines Arrays mit numerischen Schlüsseln mithilfe der Funktion json_encode() in PHP ist das Ergebnis oft eine Objektzeichenfolge mit Schlüsseln und keine Arrayzeichenfolge. Dies kann problematisch sein, wenn ein Array-of-Arrays-Format erwartet wird.
Problemerklärung:
In JavaScript erfordern Arrays aufeinanderfolgende numerische Tasten. json_encode() gibt ein Objekt aus, wenn die Schlüssel im PHP-Array keine fortlaufenden Zahlen sind.
Lösung:
Um dieses Problem ohne die Verwendung von Regex zu lösen, können wir Folgendes verwenden: die Funktion array_values(), um die ursprünglichen Array-Schlüssel zu verwerfen und sie durch eine auf Null basierende fortlaufende Nummerierung zu ersetzen. Dadurch wird sichergestellt, dass das codierte Ergebnis ein Array-String ist.
Beispiel:
// Non-consecutive numeric keys in PHP array $array = array( 2 => array("Afghanistan", 32, 13), 4 => array("Albania", 32, 12) ); // Remove original keys with array_values() $out = array_values($array); // Encode the resulting array $json = json_encode($out); // Output: [["Afghanistan", 32, 13], ["Albania", 32, 12]]
Durch die Verwendung von array_values() erhalten wir das gewünschte Array of Arrays-Format in JSON und vermeiden Sie das Objektformat mit nicht aufeinanderfolgenden Zifferntasten.
Das obige ist der detaillierte Inhalt vonWie kodiere ich ein PHP-Array mit nicht aufeinanderfolgenden numerischen Schlüsseln als JSON-Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!