0

在条件满足异常的任何情况下,我都需要打破其中包含条件的循环

像这样:

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

4 回答 4

1

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

于 2013-07-04T17:19:39.290 回答
0

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

于 2013-07-04T17:19:06.400 回答
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;
    }
}
?>
于 2013-07-04T17:19:46.667 回答
0

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

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

如需更多参考,请参阅break

并且可能是如果条件不满足,那么可能不会执行break。所以也要检查这些值。

于 2013-07-04T17:20:39.200 回答