如何在特定键值对后访问stdclass对象?

Rio*_*Rio 15 php arrays json curl stdclass

我有一个stdclass对象,如下所示:

stdClass Object
(     
    [text] => Parent
    [values] => Array
        (
            [0] => stdClass Object
                (
                    [id] => /m/0c02911
                    [text] => Laurence W. Lane Jr.
                    [url] => http://www.freebase.com/view/m/0c02911
                )

        )

)
Run Code Online (Sandbox Code Playgroud)

我迭代了多个这样的对象,其中一些有

stdClass Object
(
    [text] => Named after
    [values] => Array
        (
            [0] => stdClass Object
                (
                    [id] => /m/0c02911
                    [text] => Stanford
                    [url] => SomeURL
                )

        )

)
Run Code Online (Sandbox Code Playgroud)

我想知道如果它出现在"父"作为其值的"文本"之后我将如何访问"值"对象?

Som*_*atd 45

有几种方法可以将其转换为数组:

第一解决方案

$value = get_object_vars($object);

二解决方案:

$value = (array) $object;
Run Code Online (Sandbox Code Playgroud)

第三解决方案

$value = json_decode(json_encode($object), true);
Run Code Online (Sandbox Code Playgroud)

获取转换数组的值

echo $value['values']['0']['id'];
Run Code Online (Sandbox Code Playgroud)

访问对象var而不转换对象的替代方法,尝试

$object->values->{'0'}->id
Run Code Online (Sandbox Code Playgroud)

  • 对于最后一个选项,这将是 $object->attributes->{'0'}->id (2认同)

rob*_*obx -1

您正在寻找的是 Object['values'][0]:'values' 是键盘映射,就像 'text' 一样,[0] 是您希望访问的数组内的索引。所以如果你想在巢穴深处获得id,你必须做类似的事情

Object['values'][0]['id']
Run Code Online (Sandbox Code Playgroud)

或者

Object['values'][0]->id
Run Code Online (Sandbox Code Playgroud)

这应该给你/m/0c02911。但我不知道你是如何进行循环的,因此你必须根据你的需要进行调整,并将适当的变量放置在循环中的代码中需要的位置。不太确定您正在使用哪种语言。