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

时间:2018-06-22 01:36:33

标签: php

我在数组$ array1内有一个数组Address

[Address] => stdClass Object
        (
            [Address1] => xxxxxx
            [City] => xxxxx
            [State] => xxxxx
            [Zip] => xxxxxxx
        )

我试图调用print_r($ array1 ['Address']),但是没有用。 stdClass对象是否要求我以不同的方式调用它?

这是我的设置

我在名为$array1的函数中设置了CALL_FUNCTION。在函数内部,我使用return $array1来访问函数外部的数组。

在函数之外,我有这个...

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

如果我执行print_r($array1),它将返回其中包含上述std对象数组的数组。

2 个答案:

答案 0 :(得分:3)

$ array1不是数组,它也是错误所指示的对象:

  

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

拥有$array1 = array()不会做任何事情,因为您没有使用$array1,而是立即将其重新分配为返回值CALL_FUNCTION()

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

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

答案 1 :(得分:0)

您可以将其转换为数组

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

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