如何打破一个有条件的循环? (PHP)

时间:2013-07-04 17:15:51

标签: php loops break

在条件遇到异常的任何情况下,我需要打破一个包含条件的循环

像这样:

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;是否有效,但它不会破坏内部循环 我该怎么办?

4 个答案:

答案 0 :(得分:1)

使用break 1;退出当前循环,并使用break 2;退出2。

答案 1 :(得分:0)

你需要打破内部外部循环吗?在这种情况下,您应该使用break 2;

答案 2 :(得分:0)

  

break接受一个可选的数字参数,该参数告诉它有多少嵌套的封闭结构被打破。

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

答案 3 :(得分:0)

break结束当前for,foreach,while,do-while或switch结构的执行。

因此,在您的情况下,检查是否要结束两个for循环的执行,使用break 2;

有关详情,请参阅break

如果不满足条件,可能是因为不能执行break。所以也要检查这些值。