PHP: ограничение для foreach ()?

Как я могу ограничить заявление foreach ()? Скажите, что я хочу, чтобы он запускал первые 2 «eaches» или что-то еще?

Вы можете использовать

break; 

или

 foreach() if ($tmp++ < 2) { } 

(второе решение еще хуже)

Существует много способов: использовать счетчик:

 $i = 0; foreach ($arr as $k => $v) { /* Do stuff */ if (++$i == 2) break; } 

Другим способом было бы срезать первые 2 элемента, это не так эффективно:

 foreach (array_slice($arr, 0, 2) as $k => $v) { /* Do stuff */ } 

Вы также можете сделать что-то вроде этого (в основном то же самое, что и первый foreach, но для):

 for ($i = 0, reset($arr); list($k,$v) = each($arr) && $i < 2; $i++) { } 

вы должны использовать оператор break

обычно это так используется

 $i = 0; foreach($data as $key => $row){ if(++$i > 2) break; } 

таким же образом, оператор continue существует, если вам нужно пропустить некоторые элементы.

В PHP 5.5+ вы можете сделать

 function limit($iterable, $limit) { foreach ($iterable as $key => $value) { if (!$limit--) break; yield $key => $value; } } foreach (limit($arr, 10) as $key => $value) { // do stuff } 

Генераторы рок.

это лучшее решение для меня 🙂

 $i=0; foreach() if ($i < yourlimitnumber) { $i +=1; }