Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

break;

или

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

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

Ответ 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++) {
}

Ответ 3

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

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

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

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

Ответ 4

В 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
}

Generators rock.

Ответ 5

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

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

$i +=1;
}