让foreach跳过迭代

时间:2010-10-02 22:10:02

标签: php

我基本上需要一个foreach循环内的东西,它会跳过数组的前10次迭代。

foreach($aSubs as $aSub){
   if($iStart > '0')
   //Skip first $iStart iterations.  Start at the next one
}

由于

4 个答案:

答案 0 :(得分:26)

启动计数器并使用continue跳过前十个循环:

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

答案 1 :(得分: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";
}

答案 2 :(得分:0)

如果 $ aSubs 不是实现 Iterator 的类的对象,并且索引是连续的整数(从零开始),则更容易:< / p>

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

答案 3 :(得分:0)

实际上,您不需要使用$counter循环的优势声明另一个变量foreach,如下所示:

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

这比在foreach循环之外声明另一个变量更好。