Rumah >pembangunan bahagian belakang >masalah PHP >php menukar tatasusunan kepada tatasusunan json

php menukar tatasusunan kepada tatasusunan json

PHPz
PHPzasal
2023-04-14 19:01:16145semak imbas

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.

  1. Gunakan fungsi json_encode()
    Dalam PHP, gunakan fungsi json_encode() untuk menukar tatasusunan kepada format JSON. Fungsi ini menerima satu parameter, iaitu tatasusunan yang akan ditukar, dan nilai pulangan ialah rentetan dalam format JSON.

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.

  1. Memproses aksara Cina
    Dalam aplikasi praktikal, selalunya perlu untuk memproses aksara Cina Apabila fungsi json_encode() PHP memproses aksara Cina, ia akan menukar aksara Cina kepada aksara Unicode Ini menyebabkan beberapa aksara yang kelihatan tidak mesra muncul dalam data JSON.

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.

  1. Memproses tatasusunan berbilang dimensi
    Dalam aplikasi praktikal, kadangkala adalah perlu untuk menukar tatasusunan berbilang dimensi kepada tatasusunan JSON.

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!

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