簡體   English   中英

在PHP中,僅在Foreach循環中將“ IF”設置為true后再停止,然后繼續Foreach

[英]In PHP Stop only “IF” once it true in Foreach loop and Continue Foreach

如何在回路旁停止IF導通(一旦為TRUE則不停止回路)。 我想獲得如下的HTML輸出,

<div1>
  Group_1
      Item_1
      Item_21
      Item_43
      Item_55
  Group_2
      Item_5
      Item_34
      Item_56
  Group_3
      Item_12
  Group_4
      Item_11
      Item_14
      Item_15
</div1>

<div2>
  Group_5
      Item_2
      Item_3
  Group_6
      Item_6
      Item_7
      Item_9
  Group_7
      Item_10
      Item_41
      Item_42
      Item_43
  Group_8
      Item_13
</div2>

<div3>
  Group_9
      Item_16
      Item_17
      Item_18
      Item_19
      Item_20
      Item_30
      Item_31
      Item_32
      Item_33
      Item_35
      Item_40
      Item_44
</div3>

<div4>
   Group_10
      Item_4
      Item_22
      Item_23
  Group_11
      Item_24
      Item_25
</div4>

我的PHP代碼如下,

<?php
  $x=0;
  $num_g =  count($groups);
  $num_i =  count($items);
  $lines =  $num_g+$num_i;
  $div1 = 13;
  $div2 = 26;
  $div3 = 39;
  $div4 = 51;

  foreach($groups as $group){

    if($x==0){ 
      echo'<div class="div1">'; // Start First DIV
    }
      $x++; 

    echo 'Group - '.$group->name.'<br>'; // Group Name
    foreach($items as $item){
      if($item->group_id == $group->id) //Group Items
          $x++; 
          echo $item->name.'<br>';  // Item Name
      }


    if($x>=$div1){  // Need to stop Only this If once it TRUE ??
        echo '</div><div class="div2">'; // Start 2nd DIV
    }

    if($x>=$div2){   // Need to stop Only this If once it TRUE ??
        echo '</div><div class="div3">'; // Start 3rd DIV
    }

    if($x>=$div3){  // Need to stop Only this If once it TRUE ??
        echo '</div><div class="div4">'; // Start 4th DIV
    }

    if($x==$lines) {   // Need to stop Only this If once it TRUE ??
        echo '</div>'; // End Last DIV
    }
  }

請,有人可以對此事提供幫助或建議嗎?

使用continue關鍵字。 官方的PHp 文檔說:

在循環結構中使用continue可以跳過當前循環迭代的其余部分,並在條件評估和下一個迭代的開始處繼續執行。

在要跳過foreach中的剩余代碼的地方使用continue語句。 請參閱手冊

您需要更改代碼:

    if($x==$lines) {   // Need to stop Only this If once it TRUE ??
        echo '</div>'; // End Last DIV
        break;
    }
    if($x>=$div3){  // Need to stop Only this If once it TRUE ??
        echo '</div><div class="div4">'; // Start 4th DIV
        continue;
    }
    if($x>=$div2){   // Need to stop Only this If once it TRUE ??
        echo '</div><div class="div3">'; // Start 3rd DIV
        continue;
    }
    if($x>=$div1){  // Need to stop Only this If once it TRUE ??
        echo '</div><div class="div2">'; // Start 2nd DIV
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM