Достъп до 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
        )
)

Как да получа достъп до идентификаторите? Намерих няколко подобни въпроса, но нито един от тях не ми помогна.
Да приемем, че обектът се съхранява в $myVar.

Опитах $myVar->0->id1, $myVar->id1, $myVar->[0]->id1, $myVar->['0']->id1, $myVar[0]->id1, но всички без успех.


person Sven    schedule 23.02.2013    source източник
comment
Откъде взе този предмет? За мен изглежда като кастинг масив, така че се питам защо е кастинг към обект   -  person KingCrunch    schedule 23.02.2013
comment
@KingCrunch Мисля, че това е отговорът на REST API от Twitter.   -  person Sven    schedule 23.02.2013
comment
Ще бъдат къдрави скоби $myvar->{'0'}->id1   -  person Michael Berkowski    schedule 23.02.2013
comment
Ако е JSON, използвайте втория параметър за json_decode. Друго: array.include-once.org/   -  person mario    schedule 23.02.2013
comment
Можете също така просто да направите $myvar = (array)$myvar;, за да го прехвърлите обратно към масив и достъп като $myvar[0]->id1;   -  person Michael Berkowski    schedule 23.02.2013
comment
$myvar = (array)$myvar; напълно го направи за мен :-) Публикувайте го като отговор и аз ще го приема.   -  person Sven    schedule 23.02.2013


Отговори (2)


Както предположих в коментарите, структурата не изглежда така, сякаш някога е била предназначена да бъде третирана като обект. Вместо да се мъчите с обекта, оставете json_decode() да върне асоциативен масив на първо място

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

можете да използвате $myvar->{'0'}->id1

или можете първо да го прехвърлите като масив и след това:

$arr = (array) $myobj;
$arr[0]->id1;
person Oden    schedule 23.02.2013