2013-07-04 2 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' выполнено, оно вырвется из цикла внутреннего цикла, и ваше эхо не будет удалено. Впоследствии ваши 'li' также не будут напечатаны. – mpen

+0

точно! Я хочу так, но это не сработает – RedHood148

ответ

0

перерыв заканчивается выполнение тока для, Еогеаспа, в то время, сделайте время или переключатель структуры.

Так что в вашем случае, проверьте, если вы хотите, чтобы закончить выполнение для как для петель, используйте 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; 
    } 
} 
?> 
Смежные вопросы