up vote 2 down vote favorite
1
share [g+] share [fb]

I'm trying to get the twelve ids that this structure shows:

stdClass Object
(
    [checkins] => stdClass Object
        (
            [count] => 12
            [items] => Array
                (
                    [0] => stdClass Object
                        (

                            [venue] => stdClass Object
                                (
                                    [id] => 4564654646456
                                    .
                                    .

I do:

$checkins = $fsObjUnAuth->get("/users/self/checkins");
$count = $checkins ->response->checkins->count;  // so I can  get 12

 for( $i = 0; $i < $count; $i ++)
  {
      $a1[] = $checkins['items'][$i]['venue']['id'];  //two tries
      $a2[] = $checkins ->response->checkins->items->$i->venue->id;
        echo $i; echo ": ";
        echo $a1;echo"<br>";
        echo $a2;echo"<br>"
  } 

But I get: Fatal error: Cannot use object of type stdClass as array in line..

Please can someone show me how to do this?

Thanks a lot

link|improve this question

79% accept rate
feedback

2 Answers

up vote 3 down vote accepted

You cannot access object members via the array subscript operator [].

You have to use the -> operator:

$x = new StdClass();

$x->member = 123;

In your case you'll have to use a mixture, since you have an object ($checkins) with a member ($items) which is an array, which contains additional objects.

$a1[] = $checkins->items[$i]->venue->id;
link|improve this answer
thanks a lot, now I understand how is it done!! – user638009 Mar 1 '11 at 16:20
feedback

change

$a1[] = $checkins['items'][$i]['venue']['id'];

changed to

$a1[] = $checkins->items[$i]->venue->id; 
link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.