stdClass는 접근법이 다른가요?

stdClass는 접근법이 다른가요?

QA

stdClass는 접근법이 다른가요?

답변 1

본문

다른 사람이 작성한 코드인데 유투브 api를 통해서 아래와 같은 값을 받아서

배열 형태로 출력도 됩니다.


array(1) {
  [0]=>
  object(stdClass)#21 (4) {
    ["kind"]=>
    string(13) "youtube#video"
    ["etag"]=>
    string(27) "CiEB44mqNWDY5wC8nWhXwqh3K8E"
    ["id"]=>
    string(11) "wKD-1vUYhVM"
    ["statistics"]=>
    object(stdClass)#22 (4) {
      ["viewCount"]=>
      string(7) "2354814"
      ["likeCount"]=>
      string(5) "27245"
      ["favoriteCount"]=>
      string(1) "0"
      ["commentCount"]=>
      string(4) "3738"
    }
  }
 

그런데 제가 필요한 값은

statistics에 viewCount값입니다.

 

필요한 값을 출력하려면 연관배열처럼 접근하면 되나요?

 

아니면 stdClass가 선언(?)되었기 때문에 다른 방법을 접근해야 하나요?

 



foreach ( $statistics_ob->items as $data ){
    $viewCount = $data->statistics->viewCount;          // 조회수
}

 

필요한 부분을 출력하니, file_get_contents와 foreach 부분에서 경고가 나오고 

값이 출력 안되네요.

 



$snippet_json = file_get_contents($snippet_url);

 

 

 

이 질문에 댓글 쓰기 :

답변 1

간단합니다. 먼저 객체를 json 객체로 바꾸면 객체의 문자열이 JSON 형태로 반환됩니다.
해당 결과를 가져 와서 추가 매개 변수 인 true로 디코딩하면 연관 배열로 변환됩니다.


$array = json_decode(json_encode($statistics_ob), true);
print_r2($array);
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 186
© SIRSOFT
현재 페이지 제일 처음으로