Php 如何检索位于另一个数组中的stdClass对象数组

Php 如何检索位于另一个数组中的stdClass对象数组,php,Php,我有一个数组地址位于数组$array1中 [Address] => stdClass Object ( [Address1] => xxxxxx [City] => xxxxx [State] => xxxxx [Zip] => xxxxxxx ) 我试图调用print_r($array1['Address']),但这不起作用。stdCl

我有一个数组
地址
位于数组$array1中

[Address] => stdClass Object
        (
            [Address1] => xxxxxx
            [City] => xxxxx
            [State] => xxxxx
            [Zip] => xxxxxxx
        )
我试图调用print_r($array1['Address']),但这不起作用。stdClass对象是否要求我以不同的方式调用它

这是我的设置 我在一个名为
CALL\u function
的函数中设置了
$array1
。在函数内部,我使用
return$array1
访问函数外部的数组

在函数之外,我有这个

$array1 = array();
$array1 = CALL_FUNCTION();

如果我打印($array1)
它将返回包含上述std对象数组的数组。

$array1不是数组,它也是一个对象,如错误所示:

致命错误:未捕获错误:无法将stdClass类型的对象用作数组

拥有
$array1=array()
没有任何作用,因为您没有使用
$array1
,而是立即将其重新分配给
调用函数()的返回值

将其作为对象访问:
$array1->Address->Address1


但是,为了将来遇到您的代码的程序员,您需要将
$array1
的名称更改为类似于
$userObject
的名称。

您可以将其转换为数组

// get your array
$array1 = CALL_FUNCTION();

// cast the stdObject to an array
$array1['Address'] = (array) $array1['Address'] ;

是的,您需要
->
箭头来访问属性什么不起作用?怎么了?您确定$array1实际上是一个数组吗?@KDJ显示$array1的完整转储或显示错误消息。始终确保在开发过程中启用了错误报告。@Devon-这是一条关于无法将STD对象作为数组返回的标准错误消息<代码>致命错误:未捕获错误:无法准确地将stdClass类型的对象用作数组
@KDJ,并且由于您没有尝试访问地址键,这意味着$array1实际上是它报告错误的对象。错误信息非常有用,请始终确保将它们包含在问题中。这将导致相同的错误。。。在调用函数()之前,您需要
(数组)
类型转换。但实际上,没有迹象表明OP需要这样做conversion@Mr玻璃-谢谢你的努力。不幸的是,这不起作用。我将坚持使用
->
的标准方法来访问单个对象变量。我想值得一试。不像看上去那么容易。@KDJ,它不起作用了吗?我在发布代码之前对它进行了测试。使用
(array)
强制转换stdObject给我一个数组。@MrGlass因为$array1和$array['Address']都是stdClass对象,而不是数组。您需要执行多个强制转换才能将它们都转换到一个数组。@Devon,您的示例数据和代码并不表示
array1
是stdObject。将它表示为数组,而不是stdObject。array1实际上是一个伪名称……它实际上不是代码中数组的名称。这使问题更容易理解。我将坚持使用标准的
->
来访问对象值。我尝试了一些不同的东西…但这并不像我希望的那么容易。谢谢你的意见。