Rumah >pembangunan bahagian belakang >masalah PHP >Tukar tatasusunan php kepada json
Dalam pembangunan Web, JSON (JavaScript Object Notation) telah menjadi format data yang biasa digunakan. Ia mudah difahami dan dihuraikan Semakin ramai pengaturcara juga memilih untuk menggunakan JSON untuk penghantaran dan penyimpanan data.
Dalam pembangunan PHP, kadangkala kita perlu menukar tatasusunan kepada format JSON, yang memerlukan penggunaan fungsi terbina dalam json_encode
dalam PHP. Walau bagaimanapun, kadangkala kita perlu menukar tatasusunan kompleks Pada masa ini, kita perlu menyambung tatasusunan, dan kemudian menukar hasil yang disambungkan ke dalam format JSON.
Mula-mula, kita perlu menyambung tatasusunan untuk menukar tatasusunan berbilang dimensi kepada tatasusunan satu dimensi. Kita boleh menyelesaikan masalah ini secara rekursif. Pelaksanaan khusus adalah seperti berikut:
function array_flatten($array) { $result = array(); foreach($array as $value) { if(is_array($value)) { $result = array_merge($result, array_flatten($value)); } else { $result[] = $value; } } return $result; }
Kod di atas menggunakan kaedah rekursif untuk menukar tatasusunan kepada tatasusunan satu dimensi Antaranya, is_array($value)
menentukan sama ada nilai semasa masih merupakan tatasusunan , jika ya, teruskan pemprosesan rekursif, jika tidak, tambahkan elemen pada tatasusunan $result
.
Tatasusunan yang disambung telah ditukar kepada tatasusunan satu dimensi, dan seterusnya ia perlu ditukar kepada format JSON. Kita boleh terus menggunakan fungsi json_encode
untuk penukaran Pelaksanaan khusus adalah seperti berikut:
function array_to_json($array) { $array = array_flatten($array); $json = json_encode($array, JSON_UNESCAPED_UNICODE); return $json; }
Dalam kod di atas, $array = array_flatten($array)
menukar tatasusunan berbilang dimensi kepada tatasusunan satu dimensi dan menukar tatasusunan kepada format JSON, di mana , json_encode($array, JSON_UNESCAPED_UNICODE)
bermakna pengekodan Unikod tidak diperlukan, sekali gus mengekalkan aksara Cina. JSON_UNESCAPED_UNICODE
function array_flatten($array) { $result = array(); foreach($array as $value) { if(is_array($value)) { $result = array_merge($result, array_flatten($value)); } else { $result[] = $value; } } return $result; } function array_to_json($array) { $array = array_flatten($array); $json = json_encode($array, JSON_UNESCAPED_UNICODE); return $json; } $array = array( array('name' => '张三', 'age' => 20, 'sex' => '男'), array('name' => '李四', 'age' => 25, 'sex' => '女'), array('name' => '王五', 'age' => 30, 'sex' => '男', 'children' => array('儿子', '女儿')), ); echo array_to_json($array);Hasil keluaran kod di atas ialah:
[ "张三", 20, "男", "李四", 25, "女", "王五", 30, "男", "儿子", "女儿" ]Seperti yang anda lihat, kami telah berjaya menukar tatasusunan berbilang dimensi kepada tatasusunan satu dimensi, dan kemudian menukarnya kepada JSON format. 4. RingkasanArtikel ini memperkenalkan kaedah menukar tatasusunan kepada JSON dalam PHP, terutamanya melibatkan dua aspek: penyambungan tatasusunan dan pengekodan JSON. Untuk beberapa tatasusunan yang lebih kompleks, kami boleh menukarnya kepada tatasusunan satu dimensi melalui penyambungan, dan kemudian menukarnya dengan mudah kepada format JSON. Pada masa yang sama, kami juga menerangkan cara menggunakan fungsi
untuk menukar tatasusunan kepada format JSON. json_encode
dalam rangka kerja Laravel
boleh terus menukar tatasusunan ke dalam format JSON dan mengeluarkannya, yang lebih ringkas dan pantas. response()->json()
Atas ialah kandungan terperinci Tukar tatasusunan php kepada json. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!