Soalan:
Saya perlu menukar objek PHP stdClass kepada tatasusunan . Walau bagaimanapun, percubaan menggunakan pemutus (array), json_decode(true), dan json_decode() telah menghasilkan tatasusunan kosong. Bagaimanakah saya boleh melaksanakan penukaran ini dengan berkesan?
Jawapan:
Untuk prestasi yang sedikit terjejas, anda boleh memanfaatkan JSON kaedah untuk mencapai penukaran ini dengan cara yang ringkas:
$array = json_decode(json_encode($booking), true);
Kaedah ini mula-mula mengekod objek ke dalam rentetan JSON dan kemudian menyahkodnya semula menjadi tatasusunan.
$array = (array) json_decode(json_encode($booking));
Pendekatan ini mengembalikan tatasusunan diindeks tanpa mengekalkan nama sifat.
$array = json_decode(json_encode($booking), true);
Dengan berlalu benar sebagai argumen kedua kepada json_decode, anda boleh menukar objek kepada tatasusunan bersekutu, mengekalkan nama sifat.
Jika prestasi adalah kritikal, anda boleh melaksanakan rekursif tersuai fungsi untuk menukar objek kepada tatasusunan:
function object_to_array($object) { if (is_object($object)) { $object = get_object_vars($object); } if (is_array($object)) { return array_map(__FUNCTION__, $object); } else { return $object; } } $array = object_to_array($booking);
Atas ialah kandungan terperinci Bagaimana dengan Cekap Menukar Objek PHP stdClass kepada Array?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!