我在将对象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" } }
如果尝试创建var_dump($booking);
,则after cast为空NULL
我也尝试过这个函数,但总是空的:
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;
}
}
发布于 2013-11-20 01:50:59
使用此函数可以获得您想要的类型的标准数组...
return get_object_vars($booking);
发布于 2019-09-03 13:44:55
使用内置的类型转换功能,只需键入
$realArray = (array)$stdClass;
发布于 2017-05-12 05:24:23
请使用以下php函数将php stdClass转换为数组
get_object_vars($data)
https://stackoverflow.com/questions/18576762
复制相似问题