2014-03-28 4 views
0

메신저는 배열에서 'message'요소를 가져 오려고하지만 1 요소 만 반환합니다. 그러나 나는 'foreach는'루프에서 배열을 에코 경우 모든 메시지를 표시하지만, 난 그냥 에코 경우 다음내 PHP 배열은 하나의 요소를 표시합니다

'여기 메시지'

2014-을 :

이 그것을 출력하는 것입니다 03-25 22시 38분 46초

'여기 수'

'여기 메시지'

2014년 3월 25일 22시 38분 46초

'여기 수'

'여기 메시지'

2014년 3월 25일 22시 38분 46초

'여기 수'나는 다음과 같은 응답을 얻을

:

'여기에 메시지'

2014-03-25 22:38:46

'여기 수'

최신 메시지가 나는 메신저는 다른 소스에서 데이터를 검색으로, 물리적으로이 donot 배열을 가지고 있기 때문에 문제가 거짓말을 사실을 알고 나타나지만 메신저 정말 첫 번째를 표시하려고 2 또는 3 개의 메시지 정상적인 배열을 실행할 수 없습니다. 어떻게 2 개의 메시지 만 가져올 수있는 해결책을 쓸 수 있습니까?

+0

원시 응답을 api.txtlocal.com/get_messages/에서 확인 했습니까? 그렇지 않으면 동일한 메시지가 여러 번 반환 될 수 있습니다. –

+0

다음 작업을 수행 할 수 있습니까? print_r ($ arr); ? – Veilkrand

+0

@ Peter M 원본 응답을 확인했습니다. 가장 오래된 메시지부터 가장 오래된 메시지까지 오른쪽에 있습니다. 반대쪽에 나타납니다. – user3433444

답변

0

각 메시지를 문자열에 추가하려고합니까? 그렇다면,이 시도 : 귀하의 예를 들어 당신이 실제로 값이 아무 짓도 안 했어요에서

foreach($arr['messages'] as $message) 
    { 
     $strMessage .= $message['message']."<br /><br />" . $message['date']."<br /><br />" . $message ['number']."<br /><br />"; 
    } 


echo $strMessage; 

을, 나는 밖으로 반향되는 문자열로 그들 모두를 뒀다 여기 반면. 당신은 단지 결과의 세트 번호는이 같은 대신 for 루프를 사용할 수 원하는 경우

는 :

for (var $i = 0; $i <= 2; $i++) { 
    $strMessage .= $arr["messages"][$i]["message"] . "<br />"; 
} 
echo $strMessage; 

또는 휴식과 foreach 루프는 (그래도 난 for 루프를 선호하는 것) :

$i = 1; 
foreach ($arr["messages"] as $message) { 
    if ($i == 3) break; 
    $strMessage .= $message["message"]; 
    $i++; 
} 
echo $strMessage; 

이 도움이 되었기를 바랍니다.

+0

첫 번째 예에서는 foreach 루프 내에서 메시지를 에코합니다. 따라서 메시지에 다른 데이터가 포함되어 있으면 다른 데이터가 표시되어야합니다. –

+0

매트 당신은 GENIUS입니다! 그것은 일했다! 내가 필요로하는 메시지의 수를 보여줍니다. :)하지만 매트는 마지막 두 번째 마지막 및 세 번째 마지막 메시지를 받았습니다. 어떻게 첫 번째 새 메시지 만 표시 할 수 있습니까? iv가 울리고 있기 때문에 마지막 메시지가 먼저 나타나고 새로운 것이 바로 목록 맨 아래에 표시됩니다.이 아이디어가 있습니까? – user3433444

0

실제로 전체적으로 echo 아니 었습니다.

루프의 마지막 줄이 인쇄되어 있습니다.

foreach($arr['messages'] as $message) 
{ 
    echo $message['message']."<br /><br />"; 
    echo $message['date']."<br /><br />"; 
    echo $message ['number']."<br /><br />"; 
} 


echo $message;