2013-02-23 50 views
2

我有一个stdClass的对象,看起来像这样:以正确的方式访问stdClass对象?

stdClass Object 
(
    [0] => stdClass Object 
     (
      [id1] => Fri Feb 22 00:02:15 +0000 2013 
      [id2] => 21312 
      [id3] => 13552412 
     ) 

    [1] => stdClass Object 
     (
      [id1] => Fri Feb 22 00:02:15 +0000 2013 
      [id2] => 21331 
      [id3] => 13495842 
     ) 
) 

如何访问的ID?我发现了几个类似的问题,但他们都没有为我工作。
让我们假设对象存储在$myVar

我试过$myVar->0->id1$myVar->id1$myVar->[0]->id1$myVar->['0']->id1$myVar[0]->id1但都没有成功。

+0

从哪里得到此对象?对我来说,它看起来像一个铸造的阵列,所以我问自己,为什么它被铸造成一个对象 – KingCrunch 2013-02-23 01:20:48

+0

@KingCrunch这是我认为Twitter的REST API响应。 – Sven 2013-02-23 01:21:47

+3

这将是大括号'$ myvar - > {'0'} - > id1' – 2013-02-23 01:22:38

回答

0

可以使用$myvar->{'0'}->id1

,或者你可以将它转换为数组中第一个,那么:

$arr = (array) $myobj; 
$arr[0]->id1; 
3

就像我在评论中假定结构看起来并不像它曾经intented被treatened作为一个对象。让json_decode()不是与物体周旋,而是让json_decode()首先返回关联数组

$data = json_decode($json, true); 
echo $data[0]['id1'];