Php 停止在每个内部循环,同时

Php 停止在每个内部循环,同时,php,Php,我正在尝试使用数组从数据库中提取数据。但当我将foreach组合在一起时,它在数据库中循环了同样多的数据。如何停止循环?我已经做了断开功能,但没有工作。我的代码缺少什么 这是mycode: <?php $no=1; if(mysqli_num_rows($query) > 0) { $useArray = array("A","B","B&qu

我正在尝试使用数组从数据库中提取数据。但当我将foreach组合在一起时,它在数据库中循环了同样多的数据。如何停止循环?我已经做了断开功能,但没有工作。我的代码缺少什么

这是mycode:

<?php
  $no=1;                                
  if(mysqli_num_rows($query) > 0)
    {
      $useArray = array("A","B","B","C");
      while($row = mysqli_fetch_array($query))
      {
        foreach ($useArray as $array)
        {
          echo"<tr>";
          echo "<td>".$no."</td>";
          echo "<td>".$row['id']."</td>";
          echo "<td>".$row['name']."</td>";
          echo "<td>".$row['grade']."</td>";
          if($row['v1']>=2.000)
            echo "<td class='bg-success'>".$row['v1']."</td>";
          elseif($row['v1']>=1.500)
            echo "<td class='bg-warning'>".$row['v1']."</td>";
          elseif($row['v1']>=0.100)
            echo "<td class='bg-danger'>".$row['v1']."</td>";
          else
          {
            echo "<td class='bg-dark'>".$row['v1']."<h5>D</h5></td>";
          }
          echo "<td>".$array."</td>";
          if ($array == "C") {
            break;
           }
          echo "</tr>";
        }
      $no++;
    }
  }
 else
  {
?>
</tbody>
</table>
<?php
echo "No Point";
}
?>

结果如下

我先搜索,但不工作。也许我实现代码是错的。以下是我的参考资料:

我的预期结果是:

总数据是固定的,数组中有多少字符串,所以若数组中有(“A”、“B”、“B”、“C”),那个么数据库中也只有4行。
非常感谢您的帮助。

这里发生的是您的
中断
正在中断
foreach
,而不是在数据库查询中循环。您可以尝试在使用
中断2
时中断

此处的
2
指示您试图跳出的“易碎”环路的数量


尽管如此,我相信您可以通过修改数据库查询来改进代码,以避免不必要的循环。

break
只保留附近的块。在您的代码中:

while($continue&&&$row=mysqli\u fetch\u数组($query))
{
foreach($useArray作为$array)
{
回声“;
回显“$no.”;
...
如果($array==“C”){
打破
}
回声“;
}
$no++;
}
休息离开了前庭,但休息仍在继续

您可以添加一个变量以保留while,如下所示:

$continue=true;
而($continue&&$row=mysqli\u fetch\u数组($query))
{
foreach($useArray作为$array)
{
回声“;
回显“$no.”;
...
如果($array==“C”){
$continue=fase;
打破
}
回声“;
}
$no++;
}

您对输出的期望是什么?
foreach()
循环与SQL查询的关系如何?我只是编辑我的问题@NigelRen@NigelRenSQL查询用于获取数据以显示数据,以及
foreach
用于为显示的每个数据放置字符串数组。是否可以添加数据库中的SQL摘录?您当前正在迭代固定数组,并且仅当它位于最后一个元素“C”时才中断循环。我真的搞不懂你想做什么。在您预期结果的图像中,您从何处知道该行应该包含哪个字母?
break 2
是什么意思?@DoxTheaugbey
break 2
中的
2
意味着打破2层易碎块。
foreach
是第一层,而用于循环所有数据库行的
while
是另一层。这意味着我也必须使用break-outside-while?好的,为了了解您正在尝试执行的操作,您可以向我们展示您的数据库查询以及您正在尝试实现的操作吗?我觉得你走错了路。这就是我的全部: