回声数组的部分?

时间:2010-03-08 22:05:47

标签: php facebook arrays echo

我有以下数组作为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>';
}

所以我得到了我需要的数据,但是我想调用这个数组中的各个变量。例如,回显每个帖子的[消息]。

因为它只循环一次,所以我不能echo $wallpost['message']或类似的东西。

任何想法?

1 个答案:

答案 0 :(得分:0)

如果echo $wallpost的输出是数组数组,我假设$ wallpost包含来自pastebin的数组,例如

$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;
    }
}

注意:在你的情况下,使用Iterator是没有意义的,因为你知道第二个数组不包含任何带有帖子的元素,而第一个数组没有嵌套。