문제

대본:

$x = json_decode( $x );
foreach ( $x as $item )
{
    $info[] = $item;  //ERROR
}

데이터를 얻기 위해 데이터 피드를 사용하지만 반복하고 있습니다. 루프의 STDClass 객체에 항목을 추가하고 싶습니다. 어떻게할까요? 나는 Stdobj 's에 익숙하지 않습니다.

도움이 되었습니까?

해결책

JSON_DECODE가 배열을 반환 할 것으로 예상하면 다음을 수행 할 수 있습니다.

$x = json_decode( $x, true ); // returns associative array instead of object
$info = (object) $x;

더 많은 정보와 예를 찾을 수 있습니다 여기.

다른 팁

내가 당신을 올바르게 이해한다면, 당신은 당신이 원하는 결과를 얻으려면 일반 객체 구문을 따를 수 있어야합니다. 옵션 두 번째 매개 변수를 추가하십시오 json_decode 로 설정 true JSON을 연관 배열로 디코딩하려면 이것이 마치 사용하는 형태 인 것처럼 보입니다.

$info = new stdClass();
$x = json_decode( $x, true );
foreach ( $x as $key => $val) { 
    $info->$key = $val;
}

Ignas가 지적했듯이 json_decode() 이미 stdclass 객체로 돌아와서 방금 사용했다면 $x = json_decode($x), 당신은 필요하지 않을 것입니다 $info 전혀 ... 당신은 이미 가지고있을 것입니다 $x stdclass 객체로.

SPL'에스 ArrayObject 예제에서 오류를 생성하는 동일한 구문을 사용하겠습니다. 이것은 당신이 사용할 능력이있는 경우 ArrayObject 대신 a stdClass.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top