2010-03-08 2 views
0

은 내가 페이스 북에서 출력으로 얻을 다음과 같은 배열이 있습니다와 http://www.paste.to/v/1jntlnml배열의 일부가 에코됩니까?

을 다음과 같은 코드 -

$stream = $facebook->api_client->stream_get('',128342905144,'0','0',30,'','','',''); 

foreach($stream as $wallpost) 
{ 
    echo '<pre>'; 
    print_r($wallpost); 
    echo '</pre>'; 
} 

그래서 나는 내가 원하는 데이터를 얻을 수 있지만, 나는 개인을 호출 할 이 배열 내의 변수. 예를 들어 각 게시물의 [메시지]를 에코합니다.

는 한 번만 루프 때문에

, 나는 echo $wallpost['message'] 또는 이와 유사한 어떤 기운 다.

어떤 아이디어가 있습니까? echo $wallpost의 출력이 배열의 배열 인 경우

+0

당신이 $ wallpost [ '메시지'] 할 수없는 이유를 이해 확실하지. 또한, pastebin의 출력은 $ stream 또는 $ wallpost의 내용입니까? 배열 배열 그리고 당신은 에코 $의 wallpost [ '메시지'] 할 필요가 있기 때문에 루프는 foreach는하지만, 한 번만 – Gordon

+0

나는 $ wallpost 에코 때이를 얻을 수 – wesbos

+1

루프 때 : –

답변

0

, 나는 $ wallpost은 페이스트 빈, 예를 들어,의 배열을 포함한다고 가정 해 봅시다

$stream = Array(
    // $stream[0] 
    Array(
    // $stream[0][0] 
    Array('message' => 'msg1'), 
    // $stream[0][1] 
    Array('message' => 'msg2'), 
), 
    // $stream[0] 
    Array(
    /* other stuff */ 
) 
); 

어떤 경우에는 당신이 첫 번째 배열 반복 대안으로이

foreach($stream[0] as $wallposts) { 
    echo $wallposts['message']; 
} 

같은 메시지를 포함하여 메시지를 얻을에 전체 배열을 통과하는 RecursiveArrayIterator에 반환 된 배열을 바꿈 한 가지 :

$iterator = new RecursiveIteratorIterator(
       new RecursiveArrayIterator($stream), 
       RecursiveIteratorIterator::SELF_FIRST)); 

foreach($iterator as $key => $val) { 
    if($key === 'message') { 
     echo $val; 
    } 
} 

참고 : 두 번째 배열하지 않는 알고 있기 때문에 귀하의 경우, 반복자를 사용하는 것이 아니라 완전한 무의미 게시물이있는 요소가 포함되어 있고 첫 번째 배열은 중첩되어 있지 않습니다.

+0

Hrm, $ stream [0] 또는 $ stream [1]을 사용할 때 다음과 같이 나타납니다. 알림 : 정의되지 않은 오프셋 : 0 – wesbos

+0

$ 스트림을 의미하는 @Wes는 숫자 키 대신 연관 키를 포함합니다. var_export ($ streams)를 수행하여 붙여 넣기를 할 수 있습니까? – Gordon