[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Остановка цикла foreach
-Den-
Здравствуйте. Есть у меня foreach:

	 

foreach($types as $type){

echo '111';

}


Мне нужно как-то сделать, чтобы цикл был остановлен при определенном условии.
Хотел сделать как-то так

$limit = 10;

foreach($types as $type){

echo '111';

$limit --;

if($limit<=0) break;
}

Но это не работает в данном случае. Как можно остановить цикл?



Спустя 43 минуты, 52 секунды (29.06.2012 - 20:47) redreem написал(а):
этот случай не сработает, если количество элементов в $types меньше 10. если больше - то вполне себе будет. в чем проблема? синтаксически все верно. проблема только в правильно поставленном условии, надо полагать.

Спустя 8 минут, 30 секунд (29.06.2012 - 20:56) -Den- написал(а):
Количество точно больше 10-ти. Я уже пробовал иначе делать:

$limit = 0;

foreach($types as $type){

echo '111';

$limit ++;

if($limit==10) break;
}

Но тоже, как-то не получается.
Может проблема в том, что у меня два цикла?

foreach($last as $type=>$boards){

echo '<h2>'.$type.'</h2>';

$limit = 10;
foreach($boards as $board){

echo '111';

$limit --;
if($limit<=0) break;
}
}

Спустя 22 минуты, 24 секунды (29.06.2012 - 21:18) johniek_comp написал(а):
можешь так еще
$count = 0;
foreach($types as $type){

echo '111';
if($count++ == 10)
break;

}

Спустя 4 минуты, 43 секунды (29.06.2012 - 21:23) johniek_comp написал(а):
$limit = 10; 


вынеси за все циклы, ты ее уменьшаешь на 1, а потом на 1 прибавляешь, т.е. нуля она ни как не достигнет

Спустя 2 часа, 52 минуты, 21 секунда (30.06.2012 - 00:15) sergeiss написал(а):
вот так можно:

$stop_loop=false;
foreach( .... )
{
code;
foreach( ... )
{
code;
if( condition )
{
$stop_loop=true;
break;
}
if( $stop_loop )
break;
}

Спустя 12 часов, 44 минуты, 1 секунда (30.06.2012 - 12:59) -Den- написал(а):
Всем спасибо, всё почти работает. Проблема была в том, что я не до конца понял, как именно выбираются данные из базы. Там оказался один нюанс, который я не учел, поэтому никак не мог понять почему остановка цикла не работает. Остановка как раз работала.
Теперь у меня другая проблема, задам вопрос в другой ветке.

Спустя 38 минут, 46 секунд (30.06.2012 - 13:38) killer8080 написал(а):
Цитата (-Den- @ 29.06.2012 - 20:56)
Может проблема в том, что у меня два цикла?

Может с этого и надо было начинать
foreach($last as $type => $boards){ 

echo '<h2>'.$type.'</h2>';

$limit = 10;
foreach($boards as $board){
echo '111';
if(--$limit <= 0)
break 2;
}
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.