Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kodiere ich ein PHP-Array mit nicht aufeinanderfolgenden numerischen Schlüsseln als JSON-Array?

Wie kodiere ich ein PHP-Array mit nicht aufeinanderfolgenden numerischen Schlüsseln als JSON-Array?

Susan Sarandon
Susan SarandonOriginal
2024-11-21 12:21:10723Durchsuche

How to Encode a PHP Array with Non-Consecutive Numeric Keys as a JSON Array?

Auflösen der JSON-Objektausgabe aus einem numerischen Array in PHP mit json_encode()

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn