stdClass Object
(
[0] => stdClass Object
(
[one] => aaa
[two] => sss
)
[1] => stdClass Object
(
[one] => ddd
[two] => fff
)
[2] => stdClass Object
(
[one] => ggg
[two] => hhh
)
}
并且我必须通过密钥获取此功能,例如:
$var = $stdClass[0];
但我有错误:
致命错误:无法在
中使用stdClass类型的对象作为数组
是否可以将此stdClass解析为数组并将其与键一起使用?
答案 0 :(得分:65)
将其投射到数组:
$array = (array)$stdClass;
答案 1 :(得分:35)
如果您使用json_decode
将该JSON字符串转换为对象,则可以使用第二个参数json_decode($string, true)
并将该对象转换为关联数组。
如果没有,其他人都说了什么,只是输入它
$array = (array) $stdClass;
答案 2 :(得分:8)
你的问题可能已经解决,因为要求,但作为参考,快速的叔叔谷歌回答:
function objectToArray($d) {
if(is_object($d)) {
$d = get_object_vars($d);
}
if(is_array($d)) {
return array_map(__FUNCTION__, $d); // recursive
} else {
return $d;
}
}
完整文章here。注意我没有以任何方式与原作者联系。
答案 3 :(得分:7)
施展
$array = (array) $stdObject;
答案 4 :(得分:4)
当然你可以强制转换$var = (array) $obj;
,但我会向你的班级建议ArrayAccess
。
通过使用ArrayAccess
,您可以将对象和数据视为数组,或原生为对象。
答案 5 :(得分:3)
将其投射到数组中。目前,PHP作为一个数组是不可读的。
$array = (array)$stdClass;
答案 6 :(得分:3)
答案 7 :(得分:2)
如果您有嵌套数组,则可以使用json_encode
和json_decode
将整个对象转换为数组:
$result = json_decode(json_encode($source), JSON_OBJECT_AS_ARRAY);
答案 8 :(得分:1)
这个对我有用, 解码和编码使得常规数组
php
答案 9 :(得分:0)
+------+------+-------+-------+
| Name | Year | Stock | Value |
+------+------+-------+-------+
| John | 2020 | ABC | 123 |
| John | 2021 | ABC | 123 |
| John | 2021 | XYZ | 200 |
| John | 2022 | ABC | 123 |
| John | 2022 | XYZ | 200 |
| John | 2022 | JKL | 500 |
| John | 2023 | XYZ | 200 |
| John | 2023 | JKL | 500 |
+------+------+-------+-------+
答案 10 :(得分:-3)
stdClass是一个对象,所以你可以像
那样访问它的值echo stdClass->one;