问题:
我需要将 PHP stdClass 对象转换为数组。但是,尝试使用(数组)转换、json_decode(true) 和 json_decode() 会导致空数组。如何有效地执行此转换?
答案:
为了稍微降低性能,您可以利用 JSON简洁地实现这种转换的方法:
$array = json_decode(json_encode($booking), true);
该方法首先将对象编码为 JSON 字符串,然后将其解码回数组。
$array = (array) json_decode(json_encode($booking));
此方法返回一个索引数组,而不保留属性名称。
$array = json_decode(json_encode($booking), true);
通过将 true 作为第二个参数传递给 json_decode,您可以将对象转换为关联数组,保留属性名称。
如果性能至关重要,您可以实现自定义递归函数以将对象转换为数组:
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);
以上是如何高效地将 PHP stdClass 对象转换为数组?的详细内容。更多信息请关注PHP中文网其他相关文章!