在PHP中仅停止" IF"一旦它在Foreach循环和Continue Foreach中成立

时间:2017-01-13 15:41:57

标签: php loops foreach break

如果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
    }
  }

请,任何人都可以帮助或建议此事吗?

3 个答案:

答案 0 :(得分:1)

使用continue关键字。官方PHp documentation说:

  

continue在循环结构中用于跳过当前循环迭代的其余部分,并在条件评估和下一次迭代开始时继续执行。

答案 1 :(得分:0)

在要跳过foreach中的剩余代码的位置使用<?php require '/db/database_configuration.php'; $_1995 = mysqli_query($conn, "SELECT COUNT(*) AS Total FROM `tblalumni` WHERE yeargrad LIKE '1995' and alum_status LIKE 2"); $_1996 = mysqli_query($conn, "SELECT COUNT(*) AS Total FROM `tblalumni` WHERE yeargrad LIKE '1996' and alum_status LIKE 2"); $_1995 = mysqli_fetch_array($_1995); $_1996 = mysqli_fetch_array($_1996); // displays zero if none if (empty($_1995['Total'])) { $_1995 = '0'; } else { $_1995 = $_1995['Total'];} if (empty($_1996['Total'])) { $_1996 = '0'; } else { $_1996 = $_1996['Total'];} $ans_1995 = '1995'; $ans_1996 = '1996'; $Data95 = $_1995; $Data96 = $_1996; ?> 语句。请参阅manual

答案 2 :(得分:0)

您需要更改代码:

    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
    }