亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

停止在 while 內循環 foreach

停止在 while 內循環 foreach

PHP
慕仙森 2023-10-01 15:48:26
我嘗試使用數組從數據庫中獲取數據。但是當我在 while 中組合 foreach 時,它會在數據庫中循環盡可能多的數據。如何停止循環?我已經實現了中斷功能,但不起作用。我的代碼中缺少什么。這是我的代碼:<?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><?phpecho "No Point";}?>結果如下我先搜索,但沒有工作。也許我錯誤地實現了代碼。這是我的參考: 在 PHP 中結合 foreach 和 while ,突破 if 和 foreach。我的預期結果是:總數據由數組中的字符串數量決定,因此如果數組為 ("A","B","B","C"),那么數據庫中也只有 4 行。任何幫助表示贊賞。
查看完整描述

2 回答

?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

break只留下附近的方塊。在你的代碼中:


while($continue && $row = mysqli_fetch_array($query))

{

    foreach ($useArray as $array)

    {

        echo "<tr>";

        echo "<td>".$no."</td>";

        ...

        if ($array == "C") {

            break;

        }

        echo "</tr>";

    }

  $no++;

}

中斷離開 foreach,但 while 繼續。


您可以添加一個變量來保留 while,例如:


$continue = true;

while($continue && $row = mysqli_fetch_array($query))

{

    foreach ($useArray as $array)

    {

        echo "<tr>";

        echo "<td>".$no."</td>";

        ...

        if ($array == "C") {

            $continue = fase;

            break;

        }

        echo "</tr>";

    }

  $no++;

}


查看完整回答
反對 回復 2023-10-01
?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

這里發生的事情是你break破壞了foreach, 而不是循環遍歷數據庫查詢的 while 。您可以嘗試在使用時突破break 2。

這里2表示您試圖跳出多少個“可破壞”循環。

盡管如此,我相信您可以通過修改數據庫查詢來改進代碼,以避免不必要的循環。


查看完整回答
反對 回復 2023-10-01
  • 2 回答
  • 0 關注
  • 143 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號