Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menukar tatasusunan kepada tatasusunan objek dalam php
Dalam PHP, tatasusunan dan objek ialah dua bentuk yang berbeza, tetapi kita selalunya perlu menukar antaranya. Artikel ini akan menerangkan cara menukar tatasusunan kepada tatasusunan objek dan menukar tatasusunan objek kembali kepada tatasusunan biasa dalam PHP.
Pertama, mari kita lihat cara menukar tatasusunan biasa kepada tatasusunan objek. Dalam PHP kita boleh mencapai ini menggunakan pemutus (melemparkan tatasusunan ke objek) atau mencipta objek secara manual. Berikut ialah demonstrasi kedua-dua kaedah:
Kaedah 1: Penukaran jenis paksa
$arr = array('id'=>1, 'name'=>'John', 'age'=>25); $obj = (object)$arr; print_r($obj);
Output:
stdClass Object ( [id] => 1 [name] => John [age] => 25 )
Dalam kod di atas, kami menggunakan (object)
Pengendali menukar tatasusunan kepada objek. Operator ini sebenarnya adalah cast yang menukar nilai skalar, tatasusunan atau sumber kepada objek. Kini $obj
ialah objek dan kita boleh mengakses sifatnya seperti objek biasa.
Kaedah 2: Buat objek secara manual
$arr = array('id'=>1, 'name'=>'John', 'age'=>25); $obj = new stdClass(); foreach ($arr as $key=>$value) { $obj->$key = $value; } print_r($obj);
Output:
stdClass Object ( [id] => 1 [name] => John [age] => 25 )
Dalam kod di atas, kami cipta objek kosong secara manual $obj
, Kemudian gunakan gelung untuk lelaran melalui tatasusunan dan menetapkan setiap pasangan nilai kunci tatasusunan sebagai harta objek. Kini $obj
ialah objek dengan tiga sifat.
Seterusnya, mari kita lihat cara menukar tatasusunan objek kepada tatasusunan biasa. Dalam PHP kita boleh mencapai ini menggunakan pemutus (melemparkan objek ke tatasusunan) atau secara manual melelaran ke atas tatasusunan objek. Berikut ialah demonstrasi kedua-dua kaedah:
Kaedah 1: Penukaran jenis paksa
$obj1 = new stdClass(); $obj1->id = 1; $obj1->name = 'John'; $obj1->age = 25; $obj2 = new stdClass(); $obj2->id = 2; $obj2->name = 'Jane'; $obj2->age = 30; $arr = array($obj1, $obj2); $arr = (array)$arr; print_r($arr);
Output:
Array ( [0] => stdClass Object ( [id] => 1 [name] => John [age] => 25 ) [1] => stdClass Object ( [id] => 2 [name] => Jane [age] => 30 ) )
Dalam kod di atas, kami menggunakan menukar tatasusunan objek kepada tatasusunan biasa. Operator ini sebenarnya adalah pelakon yang menukar objek kepada tatasusunan. Kini (array)
ialah tatasusunan biasa dan kita boleh mengakses elemennya sama seperti tatasusunan biasa. $arr
$obj1 = new stdClass(); $obj1->id = 1; $obj1->name = 'John'; $obj1->age = 25; $obj2 = new stdClass(); $obj2->id = 2; $obj2->name = 'Jane'; $obj2->age = 30; $arr = array($obj1, $obj2); $new_arr = array(); foreach ($arr as $obj) { $new_arr[] = (array)$obj; } print_r($new_arr);Output:
Array ( [0] => Array ( [id] => 1 [name] => John [age] => 25 ) [1] => Array ( [id] => 2 [name] => Jane [age] => 30 ) )Dalam kod di atas, kami melintasi tatasusunan objek
dan menambah setiap hantar objek ke tatasusunan dan tambahkannya pada tatasusunan baharu $arr
. Kini $new_arr
ialah tatasusunan biasa dengan dua elemen, setiap elemen ialah tatasusunan bersekutu yang mengandungi tiga pasangan nilai kunci. $new_arr
Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan kepada tatasusunan objek dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!