Rumah >pembangunan bahagian belakang >masalah PHP >Tukar berbilang json kepada tatasusunan dalam php

Tukar berbilang json kepada tatasusunan dalam php

王林
王林asal
2023-05-11 11:56:36578semak imbas

Dalam pembangunan PHP, kami biasanya menggunakan format Json (JavaScript Object Notation), iaitu format pertukaran data ringan yang menyatakan konsep dalam bentuk yang mudah dibaca orang dan juga sesuai untuk penghuraian dan penjanaan mesin. Dalam pembangunan sebenar, kita mungkin menghadapi situasi di mana kita perlu menukar berbilang data Json kepada tatasusunan PHP, jadi hari ini kita akan bercakap tentang cara melaksanakan fungsi ini.

1. Tukar satu Json kepada tatasusunan

Dalam PHP, kami menggunakan fungsi json_decode() untuk menukar data format Json kepada tatasusunan PHP, seperti:

$json_str = '{"name":"John", "age":30, "city":"New York"}';
$arr = json_decode($json_str, true);

Antaranya, Parameter kedua benar bermakna menukar data Json kepada tatasusunan bersekutu Jika parameter kedua tidak ditambah, objek akan dijana.

2. Tukar berbilang data Json kepada tatasusunan

Jika anda perlu menukar berbilang data Json kepada tatasusunan PHP, kami boleh menggunakan traversal gelung untuk menukar data Json kepada tatasusunan satu demi satu dan menggabungkannya ke dalam tatasusunan, kodnya adalah seperti berikut:

$json_arr = array(
    '{"name":"John", "age":30, "city":"New York"}',
    '{"name":"Jane", "age":25, "city":"Los Angeles"}',
    '{"name":"Tom", "age":40, "city":"Chicago"}'
);

$data = array();
foreach($json_arr as $json_str) {
    $arr = json_decode($json_str, true); // 将Json数据转成数组
    if(is_array($arr)) { // 如果转换成功,则将其合并到$data数组中
        $data = array_merge($data, $arr);
    }
}

print_r($data);

Dalam kod di atas, kami mula-mula mentakrifkan tatasusunan $json_arr yang mengandungi berbilang data Json, kemudian menukar setiap data Json kepada tatasusunan melalui lintasan gelung, dan akhirnya menukarnya Digabungkan bersama untuk menjana tatasusunan $data yang mengandungi semua data.

Perlu diambil perhatian bahawa jika penukaran data Json kepada tatasusunan gagal, ia tidak akan digabungkan ke dalam tatasusunan $data untuk mengelakkan ralat data.

3. Gunakan fungsi array_map() untuk menukar data

Selain traversal gelung, kita juga boleh menggunakan fungsi array_map() untuk menukar berbilang data Json ke dalam tatasusunan berikut:

$json_arr = array(
    '{"name":"John", "age":30, "city":"New York"}',
    '{"name":"Jane", "age":25, "city":"Los Angeles"}',
    '{"name":"Tom", "age":40, "city":"Chicago"}'
);

// 将Json数据转换成数组
$callback = function($json_str) {
    $arr = json_decode($json_str, true);
    if(is_array($arr)) {
        return $arr;
    }
};

$data = array_filter(array_map($callback, $json_arr)); // 过滤掉转换失败的数据

print_r($data);

Dalam kod di atas, kami mentakrifkan fungsi $callback untuk menukar data Json kepada tatasusunan. Ini kemudiannya diluluskan sebagai parameter kepada fungsi array_map() untuk mengubah setiap elemen dalam tatasusunan $json_arr. Akhir sekali, gunakan fungsi array_filter() untuk menapis data yang gagal ditukar dan dapatkan tatasusunan $data yang mengandungi semua data.

Ringkasan:

Melalui dua kaedah di atas, kita boleh merealisasikan fungsi menukar berbilang data Json kepada tatasusunan PHP. Dalam pembangunan sebenar, jika anda perlu memproses sejumlah besar data Json, adalah disyorkan untuk menggunakan fungsi array_map() kerana ia lebih pantas dan kodnya lebih ringkas. Semasa penggunaan, anda juga perlu memberi perhatian untuk mengesahkan data untuk mengelakkan ralat data.

Atas ialah kandungan terperinci Tukar berbilang json kepada tatasusunan dalam php. 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