我有以下数组作为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']
或类似的东西。
任何想法?
答案 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是没有意义的,因为你知道第二个数组不包含任何带有帖子的元素,而第一个数组没有嵌套。