0

Facebookからの出力として取得する次の配列があります: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>';
}

したがって、必要なデータを取得しますが、この配列内の個々の変数を呼び出したいと思います。たとえば、各投稿の[メッセージ]をエコーアウトします。

ループは1回だけなので、カントecho $wallpost['message']などです。

何か案が?

4

1 に答える 1

0

出力echo $wallpostが Array Array の場合、$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;
    }
}

注: あなたの場合、2 番目の配列には投稿を含む要素が含まれておらず、最初の配列はネストされていないことがわかっているため、Iterator の使用はかなり無意味です。

于 2010-03-08T22:25:20.967 に答える