Rumah >pembangunan bahagian belakang >masalah PHP >php menukar tatasusunan kepada tatasusunan json
PHP ialah bahasa skrip sebelah pelayan yang popular digunakan untuk membangunkan aplikasi web. Dalam proses membangunkan aplikasi web, selalunya perlu untuk mengembalikan data ke bahagian hadapan dalam format JSON. Dalam PHP, menukar jenis data mentah kepada JSON adalah sangat mudah. Artikel ini akan memperkenalkan cara menukar tatasusunan kepada tatasusunan JSON dalam PHP.
Berikut ialah contoh kod yang menggunakan fungsi json_encode() untuk menukar tatasusunan kepada tatasusunan JSON:
<code><?php $arr = array('name' => '张三', 'age' => 20, 'gender' => '男'); echo json_encode($arr); ?></code>
Menjalankan kod di atas akan menghasilkan keputusan berikut:
<code>{"name":"\u5f20\u4e09","age":20,"gender":"\u7537"}</code>
Seperti yang anda lihat, kod di atas telah berjaya menukar tatasusunan kepada tatasusunan JSON. Fungsi json_encode() melepaskan semua aksara Unicode untuk memastikan data JSON yang dijana adalah sah.
Untuk menyelesaikan masalah ini, anda boleh menambah parameter JSON_UNESCAPED_UNICODE pada fungsi json_encode(). Parameter ini memberitahu fungsi json_encode() untuk tidak melepaskan aksara Cina, dengan itu mengekalkan aksara Cina asal.
Berikut ialah contoh kod yang menggunakan parameter JSON_UNESCAPED_UNICODE untuk menukar tatasusunan kepada tatasusunan JSON:
<code><?php $arr = array('name' => '张三', 'age' => 20, 'gender' => '男'); echo json_encode($arr, JSON_UNESCAPED_UNICODE); ?></code>
Menjalankan kod di atas akan menghasilkan keputusan berikut:
<code>{"name":"张三","age":20,"gender":"男"}</code>
Anda boleh lihat, selepas menggunakan parameter JSON_UNESCAPED_UNICODE, aksara Cina dalam tatasusunan JSON telah dikodkan ke dalam aksara Cina asal.
Jadi kita perlu menggunakan fungsi rekursif terlebih dahulu untuk menentukan sama ada nilai semasa ialah tatasusunan, kemudian panggil fungsi secara rekursif sehingga nilai semasa bukan tatasusunan.
Berikut ialah contoh kod untuk menukar tatasusunan berbilang dimensi kepada tatasusunan JSON:
<code><?php $arr = array( array('name' => '张三', 'age' => 20, 'gender' => '男'), array('name' => '李四', 'age' => 22, 'gender' => '女'), array('name' => '王五', 'age' => 24, 'gender' => '男') ); echo json_encode($arr, JSON_UNESCAPED_UNICODE); function array_to_json($array) { if (!is_array($array)) { return null; } $json = '['; foreach ($array as $key => $value) { if (is_array($value)) { $value = array_to_json($value); } else { $value = json_encode($value, JSON_UNESCAPED_UNICODE); } if ($json != '[') { $json .= ','; } $json .= $value; } $json .= ']'; return $json; } $new_arr = array( 'name' => '张三', 'info' => array( 'age' => 20, 'address' => array( 'province' => '广东省', 'city' => '深圳市' ) ) ); echo array_to_json($new_arr); ?></code>
Menjalankan kod di atas akan menghasilkan keputusan berikut:
<code>[{"name":"张三","age":20,"gender":"男"},{"name":"李四","age":22,"gender":"女"},{"name":"王五","age":24,"gender":"男"}] {"name":"张三","info":{"age":20,"address":{"province":"\u5e7f\u4e1c\u7701","city":"\u6df1\u5733\u5e02"}}}</code>
Anda boleh melihat , melalui fungsi array_to_json(), tatasusunan berbilang dimensi berjaya ditukar menjadi tatasusunan JSON.
Atas ialah kandungan terperinci php menukar tatasusunan kepada tatasusunan json. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!