2013-07-04 52 views
0

我需要打破一個循環內部具有條件,在該條件滿足例外如何打破一個有條件的循環? (PHP)

任何像這樣的情況:

for($l=0; $l<$subject_count; $l++){ 
    for($a=0; $a<$term_relatives_id_array_count; $a++){ 
     if($subject_array[$l]['id'] == $term_relatives_id_array[$a]['subject_id']){ 
      $subject_echo = true; 
      break; 
     } 
     echo 'a'; 
    } 
    if(!$subject_echo){ 
     echo '<li class="selectable_item" id="'.$subject_array[$l['id'].'">'.$subject_array[$l]['name_fa']; 
     echo '</li>'; 
    } 
} 

我以前echo 'a';,看是否break;作品,但它不會破壞內部循環 我該怎麼辦?

+0

如果你的if條件滿足,它將跳出內循環,你的回聲不會被擊中。隨後你的''''將不會被打印。準確地說是 – mpen

+0

!我想這樣,但它不會工作 – RedHood148

回答

0

休息結束當前對,的foreach的執行,而,做-而或開關結構。

所以你的情況,檢查是否要結束兩個for循環的執行,使用break 2;

更多參考,請參閱break

它可能是,如果條件不滿足,所以休息可能不會被執行。所以檢查值也。

0

您是否需要打破內部外部循環?在這種情況下,你應該使用break 2;

+0

不只是內部循環 – RedHood148

1

使用break 1;退出當前循環,break 2;出2

0

休息接受一個可選的數字參數來告訴它嵌套封閉結構,有多少是被打破了的。

http://php.net/manual/en/control-structures.break.php

實施例從上面的鏈接了:

<?php 
$i = 0; 
while (++$i) { 
    switch ($i) { 
    case 5: 
     echo "At 5<br />\n"; 
     break 1; /* Exit only the switch. */ 
    case 10: 
     echo "At 10; quitting<br />\n"; 
     break 2; /* Exit the switch and the while. */ 
    default: 
     break; 
    } 
} 
?>