繁体   English   中英

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

[英]my php array only displays one element

我试图从数组中获取元素“ 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到3条消息,所以我无法像平常一样运行数组,我该如何写一个解决方案以仅接收2条消息

您是否正在尝试将每个消息添加到字符串中然后回显它? 如果是这样,请尝试以下操作:

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;

希望对您有所帮助!

您实际上并没有echo整个事情。

打印的是循环的最后一行。

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


echo $message;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM