2017-01-13 11 views
0

IFのループを一度終了する方法、一度はTRUEループを停止せずに停止します。 私は、PHPの場合Foreachループで一度だけ "IF"を停止しForeachを続ける

<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コードは以下の通りであり、以下のようにHTML出力を取得したい

<?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 
    } 
    } 

、誰が助けるか、この問題についてのアドバイスをすることができますしてください?

+0

['breaks;'](http://php.net/manual/en/control-structures.break.php)を追加しましたか? – happymacarts

+0

はい、私は試して、ループが中断の後に停止しました – ElectroWAR

答えて

0

使用continue foreachの残りのコードをスキップしたい場所に文を入れます。 manual

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 
    } 
+0

コメントのためにありがとう、主な 'foreach'ループが止まった、' break; – ElectroWAR

1

continueキーワードを使用します。公式PHP documentationは言う:

を続けるには、現在のループ反復の残りの部分をスキップし、条件評価で実行して、次の反復の始まりを継続するループ構造内で使用されます。

関連する問題