PHPの連想配列がソートされ、json_encodeを使用してフロントエンドに出力された後、順序が変わるのはなぜですか?

WBOY
リリース: 2023-03-02 06:16:01
オリジナル
3405 人が閲覧しました

PHPの連想配列がソートされた後、json_encodeを使用してフロントエンドに出力されるのはなぜですか?
これは、file_put_contents 関数を使用してファイルに書き込まれたソートされた配列です。順序は正しいです。

PHPの連想配列がソートされ、json_encodeを使用してフロントエンドに出力された後、順序が変わるのはなぜですか?
こちらはecho json_encode()でフロントに出力したデータで、順番が変わっています。

PHPの連想配列がソートされ、json_encodeを使用してフロントエンドに出力された後、順序が変わるのはなぜですか?

なぜですか?理解できないのですが、誰か説明してもらえますか?

返信内容:

PHPの連想配列がソートされた後、json_encodeを使用してフロントエンドに出力されるのはなぜですか?
これは、file_put_contents 関数を使用してファイルに書き込まれたソートされた配列です。順序は正しいです。

PHPの連想配列がソートされ、json_encodeを使用してフロントエンドに出力された後、順序が変わるのはなぜですか?
こちらはecho json_encode()でフロントに出力したデータで、順番が変わっています。

PHPの連想配列がソートされ、json_encodeを使用してフロントエンドに出力された後、順序が変わるのはなぜですか?

なぜですか?理解できないのですが、誰か説明してもらえますか?

PHP 配列は順序付けされていますが、JSON 標準の JavaScript またはオブジェクトは順序を保証しません。JSON ライブラリによるキーの変更は、特定の実装におけるキー順序の処理 (保持/並べ替え/シャッフル) です。 ) に頼るべきではありません

順序を確実にしたい場合は、データ構造を変更して「オブジェクトの配列」を使用して実装することをお勧めします

リーリー

jsonが乱れています


以前にも同様の問題が発生しました。json_encode の値を文字列として出力できます。

Chrome ではこれが実際に起こります

バックグラウンドで出力したkey => value 结构,json_encodeシーケンスが正常であっても

ただし、Chrome は「文字列 KEY」と「数値 KEY」であっても、すべて正の順序で並べ替えられます

最終的な解決策は

array_value

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート