Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengekodkan Tatasusunan PHP dengan Kekunci Angka Bukan Berturut-turut sebagai Tatasusunan JSON?

Bagaimana untuk Mengekodkan Tatasusunan PHP dengan Kekunci Angka Bukan Berturut-turut sebagai Tatasusunan JSON?

Susan Sarandon
Susan Sarandonasal
2024-11-21 12:21:10723semak imbas

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

Menyelesaikan Output Objek JSON daripada Tatasusunan Numerik dalam PHP Menggunakan json_encode()

Apabila mengekod tatasusunan dengan kekunci angka menggunakan fungsi json_encode() dalam PHP, hasilnya ialah selalunya rentetan objek dengan kekunci dan bukannya rentetan tatasusunan. Ini boleh menjadi masalah apabila menjangkakan format Tatasusunan.

Penjelasan Masalah:

Dalam JavaScript, tatasusunan memerlukan kekunci angka berturut-turut. json_encode() akan mengeluarkan objek jika kunci dalam tatasusunan PHP bukan nombor berturut-turut.

Penyelesaian:

Untuk menyelesaikan isu ini tanpa menggunakan regex, kita boleh menggunakan array_values() berfungsi untuk membuang kekunci tatasusunan asal dan menggantikannya dengan penomboran berturut-turut berasaskan sifar. Ini memastikan bahawa hasil yang dikodkan ialah rentetan tatasusunan.

Contoh:

// 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]]

Dengan menggunakan array_values(), kami memperoleh format Tatasusunan yang dikehendaki dalam JSON dan elakkan format objek dengan kekunci angka bukan berturut-turut.

Atas ialah kandungan terperinci Bagaimana untuk Mengekodkan Tatasusunan PHP dengan Kekunci Angka Bukan Berturut-turut sebagai Tatasusunan JSON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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