ฉันมีปัญหาในการแปลงวัตถุ stdClass เป็นอาร์เรย์ ฉันได้ลองด้วยวิธีนี้:
return (array) $booking;
หรือ
return (array) json_decode($booking,true);
หรือ
return (array) json_decode($booking);
อาร์เรย์ก่อนที่นักแสดงจะเต็มไปด้วยหนึ่งระเบียนหลังจากที่ฉันพยายามจะโยนมันจะว่างเปล่า วิธีการแปลง / แปลงโดยไม่ลบแถว?
อาร์เรย์ก่อนส่ง:
array(1) { [0]=> object(stdClass)#23 (36) { ["id"]=> string(1) "2" ["name"]=> string(0) "" ["code"]=> string(5) "56/13" } }
หลังจากร่ายว่างเปล่า NULL ถ้าฉันพยายามทำ var_dump($booking);
ฉันได้ลองฟังก์ชั่นนี้แล้ว แต่ว่างเสมอ:
public function objectToArray($d) {
if (is_object($d)) {
// Gets the properties of the given object
// with get_object_vars function
$d = get_object_vars($d);
}
if (is_array($d)) {
/*
* Return array converted to object
* Using __FUNCTION__ (Magic constant)
* for recursive call
*/
return array_map(__FUNCTION__, $d);
}
else {
// Return array
return $d;
}
}
var_dump($booking);
ผลผลิตNULL
?
var_dump()
ก่อนที่จะคัดเลือก ห้ามใช้ชื่อตัวแปรเดียวกันอีกครั้ง btw ถ้า$booking
เป็นอะไรบางอย่างก่อนการคัดเลือกนักแสดงมันควรจะเป็นอย่างนั้นก่อนที่จะทำการคัดเลือกนักแสดง แตกต่างระหว่างตัวแปรอินพุตและการประมวลผลมิฉะนั้นคุณจะพบปัญหาที่คุณไม่เข้าใจอีกต่อไปว่าคุณทำอะไรอยู่ที่นั่น
return
นี้ และการวิ่งjson_decode
บนอาเรย์นั้นค่อนข้างหมดหวังสำหรับฉันอาจจะนั่งอยู่หน้าคอมพิวเตอร์นานเกินไปและถึงเวลาพักแล้ว