2012-11-13 3 views
0

누군가 내가 1/2 이상의 결과를 표시하도록 도와 줄 수 있습니까?JSON 데이터를 포착하는 Foreach 루프

$url = "http://otter.topsy.com/search.json?q=debt%20management&window=a&perpage=10"; 
$jsonfile = file_get_contents($url); 
$obj = json_decode($jsonfile); 


foreach($obj as $result) { 
    echo $obj->response->list[0]->trackback_permalink; 
    echo "<br />"; 
    echo $obj->response->list[0]->trackback_author_nick; 
    echo "<br />"; 
    echo $obj->response->list[0]->content; 
    echo "<br /><br />"; 

} 
?> 

* 참고 :

여기 내 코드입니다 내 API 키를 가지고있다.

해당 코드를 사용하면 두 가지 동일한 결과가 나타납니다.

누구나 해결책을 얻었습니까?

+0

정보가 충분하지 않습니다. 질문을 수정하고받은 JSON 구조를 게시하십시오. – arkascha

+0

여기에서보실 수 있습니다 : http://otter.topsy.com/search.json?q=debt%20management&window=a&perpage=10 – Blake

답변

1

두 개의 요소 (requestresponse)가 포함 된 최상위 개체 인 $obj을 반복합니다. 응답 목록을 반복 할 필요가 있으므로 다음이 필요합니다.

foreach($obj->response->list as $result) { 
    echo $result->trackback_permalink; 
    echo "<br />"; 
    echo $result->trackback_author_nick; 
    echo "<br />"; 
    echo $result->content; 
    echo "<br /><br />"; 
} 
+0

절대적으로 완벽합니다. 고마워. 인스턴트 메신저 JSON, 그래서 나는 간단한 것들 등등을 잘 모르겠다. 고마워요 비록이 :) - 정말 감사드립니다. – Blake

+0

'var_dump'와'print_r'는 PHP의 데이터 구조를 면밀히 관찰 할 친구입니다. – ThiefMaster

0

아, 그냥 그것을보고 :

$obj++를 제거! 각 루프가 실행되는 동안 번을 두 번 증가시킵니다. 한 번은 foreach() 루프 반복을 반복하고 한 번 수동으로 반복합니다.

+0

답장을 보내 주셔서 감사합니다. 나는 그것을 꺼내는 것을 잊어 버렸고, 그걸 가지고도 여전히 2 개의 결과 만 보여줍니다. – Blake