2014-03-26 5 views
3

Vimeo Api에서 필드 값을 가져 오려고하는데 여기서 언급 한 모든 가능한 해결책을 시도했습니다. 누군가가 thumbnail과 urls 객체 각각으로부터 thumnail과 url을 가져 오는 방법을 말해 줄 수 있습니까?stdClass 객체의 배열에서 데이터 가져 오기

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 배열을 $ VIDS 번째 어레이의 각 항목에 대해 상기 표시된 어레이를 포함 $ vidInfo를 가져 루프 안에 다른 통화와 함께 다양한 VIDS의 메타 정보를 보유하고있다. 나는 정상적으로 객체에 액세스하는 것처럼 제목 등을 검색 할 수 있습니다. 하지만 위의 응답을 더 이상 트래버스 할 수 없습니다.

<?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>'; 
     } 
    ?> 

덕분에 많은 썸네일 당신이 print_r 표현에서 볼 수 있듯이, 당신이 stdClass ObjectArray, 그래서를 볼 수 있습니다

echo $yourobj->thumbnails->thumbnail[0]->{'_content'}; 

를 들어 URL

echo $yourobj->urls->url[0]->{'_content'}; 

를 들어

+1

'$ 개체 -> urls-> URL [0] 썸네일있는 URL입니다 -> _ content' 블록은 URL입니다, '$ object-> thumbnails-> thumbnail [0] -> _ content'는 미리보기 이미지입니다. 여기에 오기가 정확히 무엇을 찾으셨습니까? – Tularis

+0

나는 하루 종일 배열에서 객체에 액세스 할 수있는 다른 방법과 함께 노력해 왔지만 루프를 반복하여 각 항목에 대한 URL을 반향하려고하면 null이 반환됩니다. 회신 해 주셔서 대단히 감사합니다. :] foreach 루프 안에는 아무것도 반환하지 않습니다. – SinSync

+0

여러분이 정확히 시도한 것을 우리에게 보여 주면 우리가 여러분을 도와 드리겠습니다. 이 사이트는 빠른 수정을하는 것뿐만 아니라, 일을하는 법을 배우는 것입니다.) – Tularis

답변

6

를 사용 가지고 배열에 액세스하는 것은 대괄호 통해 수행하면서 오브젝트 액세스

[urls] => stdClass Object 
    (
     [url] => Array 
      (
       [0] => stdClass Object 
        (
         [type] => video 
         [_content] => http://vimeo.com/0000 
        ) 

      ) 

    ) 

개체 액세스 연산자 (->)를 통해 이루어진다 ([x]). 이 경우 urls->url[0]->_content이됩니다. urls이 객체이기 때문에 url은 배열이며 첫 번째 ([0]) 색인에 다른 객체가 들어 있습니다. 그래서 짧은

이, 전체 원래의 질문에 대답하기 : $object->urls->url[0]->_content이 및 $object->thumbnails->thumbnail[0]->_content

+0

자세한 응답을 보내 주셔서 감사합니다.하지만 저는 객체와 배열을 순회하는 것이 매우 편안합니다. 나는 반 순간을 보냈으며, 내가 잠시 떨어져 있다고 생각했습니다. : P – SinSync

+0

$ 개 이상의 객체를 트래버스 할 수 없습니다. 심지어 $ object-> urls도 아닙니다. 당신이 생각할 수있는 이유가 있습니까? 또 다른 방법은 객체를 배열로 변환하고 시도하는 것입니다. 그러나 나는 그것보다 훨씬 좋은 방법이 있다고 확신합니다. – SinSync

2

전은 object을 나타냅니다. 후자는 array을 나타냅니다. 객체는 ->처럼 액세스됩니다. 배열 요소에 액세스하는 경우를 고려 대괄호 [ ]

+0

'-> _ content'는 일반적으로 허용되는 식별자입니다. 여기에'-> { '_ content'}'를 사용할 필요가 없습니다 ... – Tularis

+0

어디서나 그것이 _ 비정상이라고 말했습니까? –

+0

아니요,하지만 왜 당신이'{ '_content'}'를 사용해야하는지 이해하지 못합니다. 내가 아는 아무도 비 외적인 속성 이름을 위해 그것을 사용합니다. 이 답변으로 모든 상황에서 그 사용을 옹호하는 것처럼 보입니다. – Tularis