Get data from an array of stdClass object
api, object, php, stdclass, vimeo
Solution
Considering you have:
[urls] => stdClass Object
(
[url] => Array
(
[0] => stdClass Object
(
[type] => video
[_content] => http://vimeo.com/0000
)
)
)
Accessing an object is done via the object-access-operator (`->`), while accessing an array is done via square brackets (`[x]`). So you end up with `urls->url[0]->_content` in this case. Since `urls` is an object, and `url` is an array, whose first (`[0]`) index contains another object.
So in short, to answer your full original question: `$object->urls->url[0]->_content` is the URL and `$object->thumbnails->thumbnail[0]->_content` is the thumbnail
Problem
I'm trying to retrieve the value of the field from the Vimeo Api, I've tried all possible solutions mentioned here. Can someone tell me how to retrieve the thumnail and url from the thumbnails and urls object respectively? ``` array(1) { [0]=> stdClass Object ( [allow_adds] => 1 [embed_privacy] => anywhere [id] => 123456789 [is_hd] => 0 [is_transcoding] => 0 [license] => 0 [privacy] => anybody [title] => Soap Opera [description] => [upload_date] => 2014-02-20 03:03:50 [modified_date] => 2014-02-20 19:06:05 [number_of_plays] => 1 [number_of_likes] => 0 [number_of_comments] => 0 [width] => 600 [height] => 480 [duration] => 32 [owner] => stdClass Object ( [display_name] => blah [id] => 12345678 [is_plus] => 0 [is_pro] => 1 [is_staff] => 0 [profileurl] => http://vimeo.com/st [realname] => ST [username] => ST [videosurl] => http://vimeo.com/st/videos [portraits] => stdClass Object ( [portrait] => Array ( [0] => stdClass Object ( [height] => 30 [width] => 30 [_content] => http://b.vimeocdn.com/x.jpg ) [1] => stdClass Object ( [height] => 75 [width] => 75 [_content] => http://b.vimeocdn.com/x.jpg ) [2] => stdClass Object ( [height] => 100 [width] => 100 [_content] => http://b.vimeocdn.com/x.jpg ) [3] => stdClass Object ( [height] => 300 [width] => 300 [_content] => http://b.vimeocdn.com/x.jpg ) ) ) ) [urls] => stdClass Object ( [url] => Array ( [0] => stdClass Object ( [type] => video [_content] => http://vimeo.com/0000 ) ) ) [thumbnails] => stdClass Object ( [thumbnail] => Array ( [0] => stdClass Object ( [height] => 75 [width] => 100 [_content] => http://b.vimeocdn.com/x.jpg ) ) ) ) ``` I have an array $vids which has the meta info of various vids along with another call inside the loop which fetches the second array $vidInfo containing the array displayed above for each entry. I can retrieve the title etc just like I would access an object normally. but I can't traverse any further the response above. ``` <?php $vids = $videos->videos->video; foreach ($vids as $vid){ $id = $vid->id; $vidInfo = $vimeo->call('vimeo.videos.getInfo', array('video_id' => $id)); $vidUrl = $vidInfo->video; echo $vid->title; echo '<br />'; print_r($vidUrl->urls->url[0]->{'_content'}); //echo '<pre>' . print_r($vidUrl) . '</pre>'; } ?> ``` Thanks a lot