如何在PHP的foreach循环中每隔两行使用一串文本? (从数据库中检索记录)

时间:2015-12-05 06:32:48

标签: php mysql

我正在为学校项目制作一个“拳击记录”数据库。循环从SQL语句中检索记录。我想在每隔两行之间添加一个“VS”字符串,以便显示输出的记录。

即将到来的战斗

谢尔盖科瓦列夫(28-0-25)
VS
让帕斯卡(30-3-17)

另一名拳击手(123-0-5)
VS
一些拳击手(123-3-1)

但是,我的当前循环输出如下

谢尔盖科瓦列夫(28-0-25)
VS
让帕斯卡尔(30-3-17)
VS
另一名拳击手(123-3-1)
VS
其他拳击手(123-3-1)
VS

我目前拥有的循环如下

foreach($records as $record) {
              $i = 0;
              echo $record['name'] . " (" . $record['wins'] . "-" . $record['losses'] . "-" . $record['kos'] . ")" . "<br>";
              $i=$i*2;
              if($i%2 == 0)
              {
                echo "VS <br/>";
              }
              else{
                echo "<br />";
              }

我知道我可能会更改SQL以便在同一行显示两个战斗机,然后在回声上添加“vs”,但我认为只需修改for循环就可以使用变量计数器$ i 。我认为在每两行之间出现“VS”会很容易,但我的逻辑中缺少一些东西。

1 个答案:

答案 0 :(得分:0)

您需要将$i的值增加1,而不是将其乘以2并在$i循环之外初始化foreach

$i = 0; // Initialize counter here
foreach($records as $record) {

    echo $record['name'] . " (" . $record['wins'] . "-" . $record['losses'] . "-" . $record['kos'] . ")" . "<br>";

    if($i%2 == 0)
    {
        echo "VS <br/>";
    }
    else
    {
        echo "<br />";
    }
    $i++; // Increment counter here
}