Heim  >  Artikel  >  Backend-Entwicklung  >  Warum ändert sich die Reihenfolge, nachdem das assoziative PHP-Array mithilfe von json_encode sortiert und an das Frontend ausgegeben wurde?

Warum ändert sich die Reihenfolge, nachdem das assoziative PHP-Array mithilfe von json_encode sortiert und an das Frontend ausgegeben wurde?

WBOY
WBOYOriginal
2016-12-01 00:56:433351Durchsuche

Nachdem das assoziative PHP-Array sortiert wurde, wird es mit json_encode an das Frontend ausgegeben. Warum ändert sich die Reihenfolge?
Dies ist das sortierte Array, das mit der Funktion file_put_contents in die Datei geschrieben wurde. Die Reihenfolge ist korrekt.

Warum ändert sich die Reihenfolge, nachdem das assoziative PHP-Array mithilfe von json_encode sortiert und an das Frontend ausgegeben wurde?
Dies sind die Daten, die mit echo json_encode() an die Rezeption ausgegeben werden, und die Reihenfolge hat sich geändert.

Warum ändert sich die Reihenfolge, nachdem das assoziative PHP-Array mithilfe von json_encode sortiert und an das Frontend ausgegeben wurde?

Warum? Ich kann es nicht herausfinden, kann es jemand erklären?

Antwortinhalt:

Nachdem das assoziative PHP-Array sortiert wurde, wird es mit json_encode an das Frontend ausgegeben. Warum ändert sich die Reihenfolge?
Dies ist das sortierte Array, das mit der Funktion file_put_contents in die Datei geschrieben wurde. Die Reihenfolge ist korrekt.

Warum ändert sich die Reihenfolge, nachdem das assoziative PHP-Array mithilfe von json_encode sortiert und an das Frontend ausgegeben wurde?
Dies sind die Daten, die mit echo json_encode() an die Rezeption ausgegeben werden, und die Reihenfolge hat sich geändert.

Warum ändert sich die Reihenfolge, nachdem das assoziative PHP-Array mithilfe von json_encode sortiert und an das Frontend ausgegeben wurde?

Warum? Ich kann es nicht herausfinden, kann es jemand erklären?

Obwohl PHP-Arrays geordnet sind, garantiert JavaScript oder Object im JSON-Standard nicht die Reihenfolge. Jede Änderung des Schlüssels durch die JSON-Bibliothek ist ein standardkonformes Verhalten. Die Verarbeitung der Schlüsselreihenfolge in einer bestimmten Implementierung (Aufbewahrung/Sortierung). / außer Betrieb) sollte nicht als verlässlich angesehen werden

Wenn Sie die Reihenfolge sicherstellen möchten, wird empfohlen, die Datenstruktur zu ändern und „Objektarray“ zu verwenden, um sie zu implementieren

<code>{
  cnt: [
    {id: "12", value:"1"},
    {id: "03", value:"1"},
    ...</code>

json ist ungeordnet


Ich bin schon einmal auf ähnliche Probleme gestoßen. Sie können den Wert von json_encode in Form eines Strings ausgeben und ihn selbst konvertieren

In Chrome passiert dies tatsächlich

Auch wenn Sie die

-Struktur im Hintergrund ausgeben, ist die key => valueReihenfolge normaljson_encode

Chrome sortiert jedoch auch nach „string KEY“ und „numeric KEY“, sie werden alle in positiver Reihenfolge angeordnet

Die endgültige Lösung lautet also

array_value

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