对于一维数组,您可以使用强制转换或 get_object_vars
转换:
$array = (array) $object;
get_object_vars:
$array = get_object_vars($object);
这两种方法都将对象转换为阵列,它们表现出细微的差异。 get_object_vars 仅返回可公开访问的属性,除非在对象的范围内调用。但是,转换会保留所有成员,包括私有成员和受保护成员。
对于多维数组,您可以采用各种方法。
JSON编码和解码:
如果你的对象可以编码为JSON,你可以使用PHP 原生 JSON 函数:
$array = json_decode(json_encode($object), true);
此方法不包含私有和受保护成员,不适合包含非 JSON 编码数据的对象。
递归函数:
以下函数递归地将对象转换为数组,包括私有的和受保护的成员:
function objectToArray($object) { if(!is_object($object) && !is_array($object)) return $object; return array_map('objectToArray', (array) $object); }
以上是如何有效地将PHP对象转换为数组?的详细内容。更多信息请关注PHP中文网其他相关文章!