Mengapakah `json_encode` Melayan Tatasusunan Jarang Berbeza Bergantung pada Strukturnya?

Linda Hamilton
Lepaskan: 2024-11-26 05:34:10
asal
657 orang telah melayarinya

Why Does `json_encode` Treat Sparse Arrays Differently Depending on Their Structure?

JSON_ENCODE Mengekodkan Tatasusunan Jarang Secara Berbeza: Objek vs. Tatasusunan

Apabila bekerja dengan tatasusunan jarang, adalah penting untuk memahami cara json_encode berkelakuan. Tatasusunan jarang ialah yang mengandungi indeks yang tiada, mewujudkan jurang dalam jujukan berangka.

Isunya

Seperti yang ditunjukkan dalam coretan kod yang disediakan, json_encode pada mulanya mengekodkan yang jarang tatasusunan $a sebagai tatasusunan. Walau bagaimanapun, selepas mengalih keluar elemen menggunakan unset, panggilan json_encode seterusnya menghasilkan objek JSON.

Penjelasan

JSON tidak mempunyai cara untuk mewakili tatasusunan dengan indeks yang hilang. Akibatnya, json_encode kembali kepada pengekodan tatasusunan jarang sebagai objek JSON apabila ia menghadapi jurang tersebut.

Penyelesaian

Untuk mengelakkan tingkah laku ini dan memastikan tatasusunan jarang dikodkan secara konsisten sebagai tatasusunan, anda boleh menggunakan array_values($a) sebelum menggunakan json_encode. Fungsi ini mengindeks semula tatasusunan, membuang jurang dan memastikan output yang konsisten.

Atas ialah kandungan terperinci Mengapakah `json_encode` Melayan Tatasusunan Jarang Berbeza Bergantung pada Strukturnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan