Ответ 1
Запустите счетчик и используйте continue
, чтобы пропустить первые десять циклов:
$counter = 0 ;
foreach($aSubs as $aSub) {
if($counter++ < 10) continue ;
// Loop code
}
Мне в основном нужно что-то внутри цикла foreach, которое пропустит первые 10 итераций массива.
foreach($aSubs as $aSub){
if($iStart > '0')
//Skip first $iStart iterations. Start at the next one
}
Спасибо
Запустите счетчик и используйте continue
, чтобы пропустить первые десять циклов:
$counter = 0 ;
foreach($aSubs as $aSub) {
if($counter++ < 10) continue ;
// Loop code
}
Использование итераторов:
$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";
}
Если $aSubs не является объектом класса, который реализует Iterator, а индексы являются последовательными целыми числами (начиная с нуля), было бы проще:
$count = count($aSubs);
for($i = 9, $i < $count; $i++) {
// todo
}
На самом деле вам не нужно объявлять другую переменную $counter
, используя преимущество цикла foreach
следующим образом:
foreach ($aSubs as $index => $aSub) {
if ($index < 10) continue;
// Do your code here
}
Это лучше, чем объявление другой переменной вне цикла foreach.