Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menukar objek json kepada objek tatasusunan rentetan dalam php

Bagaimana untuk menukar objek json kepada objek tatasusunan rentetan dalam php

PHPz
PHPzasal
2023-04-18 09:48:18478semak imbas

Dalam PHP, fungsi json_decode boleh menghuraikan rentetan JSON ke dalam objek atau tatasusunan dalam PHP, manakala fungsi json_encode boleh menukar objek atau tatasusunan PHP kepada rentetan JSON. Tetapi kadangkala kita perlu menukar objek JSON kepada objek tatasusunan rentetan, apakah yang perlu kita lakukan?

Andaikan rentetan JSON kami kelihatan seperti ini:

{
    "name": "Tom",
    "age": 18,
    "hobbies": ["reading", "running", "swimming"]
}

Kita boleh menggunakan kod PHP berikut untuk menukarnya menjadi objek tatasusunan rentetan:

$json = '{"name":"Tom","age":18,"hobbies":["reading","running","swimming"]}';
$data = json_decode($json, true);

$keys = array_keys($data);
$values = array_values($data);

$str_arr = [];
for ($i = 0; $i < count($keys); $i++) {
    if (is_array($values[$i])) {
        $str_arr[$keys[$i]] = json_encode($values[$i]);
    } else {
        $str_arr[$keys[$i]] = (string) $values[$i];
    }
}

var_dump($str_arr);

Pertama, kami menghantar rentetan JSON ke fungsi json_decode dan menetapkan parameter kedua kepada benar, yang bermaksud menukar JSON yang dihuraikan menjadi tatasusunan bersekutu.

Seterusnya, kami menggunakan fungsi array_keys untuk mendapatkan nama kunci tatasusunan bersekutu, dan fungsi array_values ​​​​untuk mendapatkan nilai tatasusunan bersekutu.

Kemudian, kami merentasi semua nama dan nilai utama melalui gelung for dan menentukan sama ada nilai itu ialah tatasusunan. Jika nilai ialah tatasusunan, kami akan menggunakan fungsi json_encode untuk menukarnya kepada rentetan JSON jika ia bukan tatasusunan, kami akan menggunakan cast untuk menukarnya kepada rentetan.

Akhir sekali, kami menggunakan nama kunci sebagai kunci dan rentetan sebagai nilai untuk membina tatasusunan bersekutu baharu. Menggunakan fungsi var_dump untuk mengeluarkan hasil, anda boleh mendapatkan output berikut:

array(3) {
  ["name"]=>
  string(3) "Tom"
  ["age"]=>
  string(2) "18"
  ["hobbies"]=>
  string(28) "["reading","running","swimming"]"
}

Seperti yang anda lihat, kami berjaya menukar objek JSON menjadi objek tatasusunan rentetan. Antaranya, langkah utama ialah menggunakan fungsi json_encode untuk menukar tatasusunan kepada rentetan JSON.

Atas ialah kandungan terperinci Bagaimana untuk menukar objek json kepada objek tatasusunan rentetan 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