stdClass Объект и массив, как использовать php

Я пытаюсь получить двенадцать идентификаторов, которые показывают эта структура:

stdClass Object ( [checkins] => stdClass Object ( [count] => 12 [items] => Array ( [0] => stdClass Object ( [venue] => stdClass Object ( [id] => 4564654646456 . . 

Я делаю:

 $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>" } 

Но я получаю: Fatal error: нельзя использовать объект типа stdClass как массив в строке.

Может кто-нибудь покажет мне, как это сделать?

большое спасибо

Вы не можете получить доступ к элементам объекта через оператор индексирования массива [] .

Вы должны использовать оператор -> :

 $x = new StdClass(); $x->member = 123; 

В вашем случае вам придется использовать смесь, так как у вас есть объект ( $checkins ) с членом ( $items ), который является массивом, который содержит дополнительные объекты.

 $a1[] = $checkins->items[$i]->venue->id; 

Вот простое решение для преобразования объекта stdClass в массив в php с функцией get_object_vars

Посмотрите: http://php.net/manual/fr/function.get-object-vars.php

Пример:

 debug($array); $var = get_object_vars($array); debug($var); 

Или замените debug на print_r

Я использую CakePHP framework

Cdt

изменение

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

изменился на

 $a1[] = $checkins->items[$i]->venue->id;