2017-04-19 87 views
0

其實我有三個foreach循環。當第三個foreach循環值($ val == $ test)匹配時,我想跳過第二個foreach循環。 這是我的代碼。如何在codeigniter中匹配值時跳過foreach循環

<tbody> 
    <?php foreach ($tests as $test): ?> 
    <tr> 
    <td><?= $test; ?></td> 
    <?php foreach ($room as $key => $value): ?> 
     <?php foreach ($value['dates'] as $val) : ?> 
     <?php if ($val == $test) { ?> 
     <td><span class="text-danger"><?= $value['room_id'];?</span></td> 
     <?php } ?> 
     <?php endforeach; ?> 
    <td><span class="text-custom"><?= $value['room_id']; ?></span></td> 
    <?php endforeach; ?> 
    </tr> 
<?php endforeach; ?> 
</tbody> 
+2

@Saty不是'繼續'嗎? –

+0

你的意思是,如果$ val == $ test那麼它應該去第一個foreach意味着$房間是一個嗎? – rahulsm

+0

我會完全失去第三個循環 - 唯一的區別是類名。看看使用'in_array'這樣的東西來查看'$ test ['dates']是否存在'$ test' - 如果是的話就改變類。 – Tom

回答

0

我仍然認爲你不需要第三個循環。您可以刪除它並用in_array()替換它,然後根據結果更改類名稱。

<tbody> 
    <?php foreach ($tests as $test): ?> 
    <tr> 
     <td><?= $test; ?></td> 
     <?php 
      foreach ($room as $key => $value): 
       $class = "text-custom"; 
       if(in_array($test, $value['dates']) { 
        $class = "text-danger"; 
       } 

      <td><span class="<?php echo $class; ?>"><?= $value['room_id'];?</span></td> 

     <?php endforeach; ?> 
    </tr> 
    <?php endforeach; ?> 
</tbody> 

幾個百分點 - 您可以通過使用三元if聲明使這一清潔 - 使用短標籤(<?= ?>)因爲他們並不總是由服務器支持的時候也小心。

+0

謝謝你@@@@ thebluefox ....你解決了我的項目.....謝謝你謝謝你謝謝.. – shalder

+0

我的榮幸@沙漠 – Tom

0
<tbody> 
<?php foreach ($tests as $test): ?> 
    <tr> 
     <td><?= $test; ?></td> 
     <?php 
     $bool = FALSE; 
     foreach ($room as $key => $value): 
      ?> 
      <?php foreach ($value['dates'] as $val) : ?> 
       <?php if ($val == $test) { ?> 
        <td><span class="text-danger"><?= $value['room_id']; ?></span></td> 
        <?php 
        $bool = TRUE; 
        break; 
       } 
       ?> 
      <?php endforeach; ?> 
      <td><span class="text-custom"><?= $value['room_id']; ?></span></td> 

      <?php 
      if ($bool) { 
       continue; 
      } 

     endforeach; 
     ?> 
    </tr> 
    <?php 
endforeach; 
?> 

使用此代碼,我申請休息;在第二個循環的基礎上的第三個循環條件。希望這會爲你工作

+0

實際上它不適合我工作..感謝您的幫助 – shalder

+0

現在使用我替換中斷繼續 –

0

你可以使用continue。如果你想跳過嵌套循環,那麼你可以寫continuen,其中n是你想跳過的嵌套循環的數量。

continue將跳過迭代。

break將結束循環。