Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menukar objek array php kepada objek array
Dalam PHP, kadangkala kita perlu menukar objek tatasusunan kepada objek tatasusunan lain Proses ini tidak sukar dan boleh dicapai dengan hanya beberapa baris kod ringkas.
Langkah utama untuk menukar objek tatasusunan kepada objek tatasusunan adalah seperti berikut:
Andaikan kita mempunyai tatasusunan sumber objek yang mengandungi berbilang elemen Objek, setiap elemen mempunyai beberapa sifat. Kita perlu menukar elemen objek ini kepada objek tatasusunan yang lain, dan setiap elemen hanya perlu mengandungi sifat tertentu.
Kodnya adalah seperti berikut:
$sourceArray = array( (object) array('id' => 1, 'name' => 'John', 'age' => 25), (object) array('id' => 2, 'name' => 'Amy', 'age' => 35), (object) array('id' => 3, 'name' => 'Bob', 'age' => 28), (object) array('id' => 4, 'name' => 'Cathy', 'age' => 30) );
Kita perlu mentakrifkan struktur data objek tatasusunan sasaran, yang ialah, apakah atribut yang terkandung dalam setiap elemen. Jika setiap elemen tatasusunan sasaran mengandungi semua atribut dalam tatasusunan sumber, maka tatasusunan sasaran boleh sama terus dengan tatasusunan sumber tanpa sebarang penukaran.
$targetStructure = array( 'id' => '', 'name' => '', );
Sekarang kita mempunyai struktur data tatasusunan sumber dan tatasusunan sasaran, langkah seterusnya ialah mengendalikan proses penukaran. Kita boleh menggunakan gelung foreach untuk melelar melalui setiap elemen dalam tatasusunan sumber dan menyalin atribut yang sepadan dalam tatasusunan sumber ke tatasusunan sasaran berdasarkan struktur data tatasusunan sasaran.
$targetArray = array(); foreach ($sourceArray as $sourceObject) { $targetObject = array(); foreach ($targetStructure as $key => $value) { $targetObject[$key] = $sourceObject->$key; } $targetArray[] = (object) $targetObject; }
Dalam kod di atas, kami mula-mula menentukan tatasusunan kosong $targetArray
untuk menyimpan data yang ditukar. Kemudian kami melakukan gelung foreach pada tatasusunan sumber, mengulangi setiap elemen $sourceObject
. Dalam gelung dalam, $targetStructure
tatasusunan sasaran digelung dan key
dan value
yang sepadan dijana. Akhir sekali, kami menukar setiap elemen sasaran kepada objek baharu dan menambahnya pada $targetArray
.
Akhir sekali, kami boleh mengeluarkan tatasusunan sasaran yang ditukar untuk menyemak sama ada penukaran berjaya. Kita boleh menggunakan fungsi print_r()
untuk mengeluarkan tatasusunan, atau kita boleh menggunakan fungsi json_encode()
untuk menukar tatasusunan kepada format JSON untuk memudahkan melihat hasil output.
echo json_encode($targetArray);
Dengan cara ini, kami telah menyelesaikan semua langkah penukaran objek tatasusunan. Kod lengkap adalah seperti berikut:
$sourceArray = array( (object) array('id' => 1, 'name' => 'John', 'age' => 25), (object) array('id' => 2, 'name' => 'Amy', 'age' => 35), (object) array('id' => 3, 'name' => 'Bob', 'age' => 28), (object) array('id' => 4, 'name' => 'Cathy', 'age' => 30) ); $targetStructure = array( 'id' => '', 'name' => '', ); $targetArray = array(); foreach ($sourceArray as $sourceObject) { $targetObject = array(); foreach ($targetStructure as $key => $value) { $targetObject[$key] = $sourceObject->$key; } $targetArray[] = (object) $targetObject; } echo json_encode($targetArray);
Dalam pembangunan sebenar, kami mungkin perlu melakukan lebih banyak pemprosesan dan penapisan data, tetapi idea umum pada dasarnya adalah sama seperti kod sampel di atas. Jika kami menghadapi keperluan untuk penukaran data, kami boleh mengubah suai kod mengikut situasi sebenar dan menyelesaikan pemprosesan data yang sepadan.
Atas ialah kandungan terperinci Bagaimana untuk menukar objek array php kepada objek array. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!