【问题标题】:How can I break a loop which has a condition in it? (PHP)如何打破其中有条件的循环? (PHP)
【发布时间】:2013-07-05 01:20:39
【问题描述】:

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

像这样:

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

【问题讨论】:

  • 如果您的if 条件得到满足,那么它将跳出内部for循环并且您的回声不会被击中。随后您的lis 也不会被打印出来。
  • 没错!我想要那样,但它不会工作

标签: php loops break


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    更多参考,请参考break

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2010-11-06
          • 1970-01-01
          • 1970-01-01
          • 2015-02-20
          • 2011-08-18
          • 2017-06-04
          • 1970-01-01
          • 2021-06-05
          • 1970-01-01
          相关资源
          最近更新 更多