【问题标题】:Foreach loop is running n times [closed]Foreach循环运行n次[关闭]
【发布时间】:2012-09-23 21:29:51
【问题描述】:
foreach($CarAdList as $CarAd)
{
    echo($msg .= '<tr><td>'.$CarAd->getCarAdID().'</td><td>' .$CarAd->getBrandText().'</td><td>' .$CarAd->getDescription(). '</td><td><a href="status.php?id='.$CarAd->getCarAdID().'"><img src="../images/active.png" /></a></td><td><img src="../images/delete.png" width="30px" /></td></tr>');
}

例如, 行数=38

n= 行数 * 行数--

运行n次

所以它的显示

5
5
4
5
4
3
5
4
3
2
5
4
3
2
1

【问题讨论】:

  • 您的问题是什么?你预计它会运行多少次? :)

标签: php loops foreach


【解决方案1】:

echo($msg .= 'somecontent') 是一个非常奇怪的结构。要么你想连接值并在最后输出它,要么你立即输出。

foreach($a as $b) {
   echo $b;
}

$var = '';
foreach($a as $b) {
   $var .= $b;
}
echo $var

【讨论】:

  • 哇谢谢问题解决了,非常感谢
【解决方案2】:

循环仅运行请求的次数,但您的输出不匹配。那是因为您正在向 $msg 和同时向 echo 添加文本。

要么在循环中构造$msg 并稍后回显它,要么回显而不连接先前的结果,如下所示:

foreach($CarAdList as $CarAd)
{
    echo '<tr><td>'.$CarAd->getCarAdID().'</td><td>' .$CarAd->getBrandText().'</td><td>' .$CarAd->getDescription(). '</td><td><a href="status.php?id='.$CarAd->getCarAdID().'"><img src="../images/active.png" /></a></td><td><img src="../images/delete.png" width="30px" /></td></tr>';
}

【讨论】:

  • @OP:澄清一下:第一次,假设$msg为空,代码输出第一行。第二,因为您将第二行添加到现有的 $msg(已经有第一行)并显示整个内容,所以它输出前 two 行。第三个,第一个三个。以此类推。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-06
  • 2013-03-27
相关资源
最近更新 更多