Php stdClass到数组?

Php stdClass到数组?,php,Php,我有: 我必须用钥匙来取这个,例如: stdClass Object ( [0] => stdClass Object ( [one] => aaa [two] => sss ) [1] => stdClass Object ( [one] => ddd [two] => fff )

我有:

我必须用钥匙来取这个,例如:

stdClass Object
(
    [0] => stdClass Object
        (
            [one] => aaa
            [two] => sss
        )

    [1] => stdClass Object
        (
            [one] => ddd
            [two] => fff
        )

    [2] => stdClass Object
        (
            [one] => ggg
            [two] => hhh
        )
}
但我有一个错误:

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

是否可以将此stdClass解析为数组并与键一起使用?

将其强制转换为数组:

$var = $stdClass[0]; 
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;
  }
}

$array = (array)$stdClass;

将其放入阵列中。目前,PHP无法将其作为数组读取

$array = (array) $stdObject;

基本上,只需键入cast即可:

$array = (array)$stdClass;

但是请阅读注意事项。

如果要使用
json\u decode
将该json字符串转换为对象,则可以使用第二个参数
json\u decode($string,true)
,将该对象转换为关联数组

如果没有,其他人都说了些什么,只需输入即可


$array=(array)$stdClass

stdClass是一个对象,因此您可以像

$arr = (array)$obj;
$var = $arr[0];

当然,您可以进行类型转换,
$var=(数组)$obj,但我建议你们班


通过使用
ArrayAccess
,您可以将对象和数据视为一个数组,或将其视为一个本地对象来处理。

您的问题可能已经解决,因为您询问了谷歌快速回答,但仅供参考:

echo stdClass->one;
全文。请注意,我与原作者没有任何联系。

这本书对我很有用, 解码和编码使之成为规则数组


$array=json\u decode(json\u encode($object),True)

如果有嵌套数组,可以使用
json\u encode
json\u decode
将整个对象转换为数组:

$var = $stdClass[0]; 
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;
  }
}

首先,为什么它是一个
stdClass
,您不能将它创建为数组吗?当然可以:$arrayRepresentation=(array)$someStdClass;如果现在用户$array[0]可能存在重复,则我有空阵列这仅适用于当前阵列。儿童数组仍然是stdObject@LucciFangorci你没有提到,你想要整棵树。现在我甚至看不出原因:
echo$array[0]->two
。这些数据从何而来?我使用json和json_解码函数。我为这个函数添加了参数true,但仍然有空数组
$array=json\u decode($jsonData,true)不工作?请给出一个完整的示例,包括JSON数据的样子。如果我使用true,那么我就有空数组。如果我使用你的解决方案,这只适用于当前数组-子数组仍然是stdClass是的,子数组仍然是
stdClass
对象,你也必须对它们进行强制转换。@佩塔是的,但我认为他也必须使用foreach。使用
json\u decode
应该没有问题,是吗:
$array=json\u decode($string,true)
然后使用
print\r
将给出带有键的关联数组。$array[0][one]将返回一个只要对象中有对象,就需要将包含的对象强制转换为数组并对其进行迭代。迭代时,访问所需的属性
$var->one