gpt4 book ai didi

php - 如何将对象转换为数组?

转载 作者:IT老高 更新时间:2023-10-28 11:40:11 28 4
gpt4 key购买 nike

<?php
print_r($response->response->docs);
?>

输出以下内容:

    Array 
(
[0] => Object
(
[_fields:private] => Array
(
[id]=>9093
[name]=>zahir
)
Object
(
[_fields:private] => Array
(
[id]=>9094
[name]=>hussain
)..
)
)

如何将此对象转换为数组?我想输出以下内容:

Array
(
[0]=>
(
[id]=>9093
[name]=>zahir
)
[1]=>
(
[id]=>9094
[name]=>hussain
)...
)

这可能吗?

最佳答案

一维数组

为了转换一维数组,你可以使用 (array) 或者有 get_object_vars , Benoit 在 his answer .

// Cast to an array
$array = (array) $object;
// get_object_vars
$array = get_object_vars($object);

它们的工作方式略有不同。例如,get_object_vars 将返回一个只有可公开访问的属性的数组,除非它是在您传递的对象范围内(即在对象的成员函数中)调用的。另一方面,(array) 将强制转换为一个数组,该数组的所有公共(public)、私有(private)和 protected 成员都完好无损,当然现在都是公共(public)的。

多维数组

一种有点脏的方法是使用 PHP >= 5.2 的原生 JSON 函数编码为 JSON,然后解码回数组。但是,这将不包括私有(private)成员和 protected 成员,并且不适用于包含无法 JSON 编码的数据(例如二进制数据)的对象。

// The second parameter of json_decode forces parsing into an associative array
$array = json_decode(json_encode($object), true);

或者,以下函数将从一个对象转换为一个包含私有(private)和 protected 成员的数组,取自 here并修改为使用强制转换:

function objectToArray ($object) {
if(!is_object($object) && !is_array($object))
return $object;

return array_map('objectToArray', (array) $object);
}

关于php - 如何将对象转换为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2476876/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com