2010-10-02 4 views

ответ

25

Начать счетчик и использовать continue пропустить первые десять петель:

$counter = 0 ; 
foreach($aSubs as $aSub) { 
    if($counter++ < 10) continue ; 
    // Loop code 
} 
+1

это работает отлично. Какая отличная идея. благодаря – tmartin314

2

Использование итераторов:

$a = array('a','b','c','d'); 
$skip = 2; 
foreach (new LimitIterator(new ArrayIterator($a), $skip) as $e) 
{ 
    echo "$e\n"; 
} 

Выход:

c 
d 

Или с использованием индекса (если массив имеет целые ключи от 0 .. N-1):

foreach ($a as $i => $e) 
{ 
    if ($i < $skip) continue; 
    echo "$e\n"; 
} 
0

If $ aSubs это не является объектом класса, который реализует итератора и индексы являются последовательными целыми числами (начиная с нуля), было бы легче:

$count = count($aSubs); 
for($i = 9, $i < $count; $i++) { 
    // todo 
} 
0

на самом деле, вам не нужно объявить другую переменную $counter, используя преимущество foreach петли Li ke this:

foreach ($aSubs as $index => $aSub) { 
    if ($index < 10) continue; 
    // Do your code here 
} 

Это способ лучше, чем объявить другую переменную за пределами цикла foreach.

Смежные вопросы