我的php数组只显示一个元素

时间:2014-03-28 23:02:57

标签: php arrays api loops foreach

我试图从数组中获取元素'message',但只返回1个元素。 但是,如果我从'foreach'循环回显数组,它会显示所有消息,但如果我只是回应以下内容:

这是它输出的内容:

'在这里留言'

2014-03-25 22:38:46

'数字在这里'

'在这里留言'

2014-03-25 22:38:46

'数字在这里'

'在这里留言'

2014-03-25 22:38:46

'数字在这里'

我收到以下回复:

'在这里留言'

2014-03-25 22:38:46

'数字在这里'

只有最新消息出现,我知道事实上问题在于因为我没有物理上有一个数组,因为我正在从另一个源检索数据,但我真的只想显示前两个或三个消息我无法运行一个数组像平常一样,我怎么能写一个解决方案才能获得2条消息

2 个答案:

答案 0 :(得分: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;

我希望这有帮助!

答案 1 :(得分:0)

你实际上并没有echo整个事情;

打印的内容是循环中的最后一行。

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


echo $message;