2011-05-10 99 views
2

我正在尝试创建一个PHP foreach语句,为前5次迭代输出不同的代码,然后为其余的输出做不同的输出。通过迭代在一个foreach中执行更改代码

我发现这个代码片断,它在给定的限制内断开,但我怎么能从另一个foreach循环的最后一次迭代继续?无论如何,这可能不是最好的方法。

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

这可能吗?我会怎么做呢?

谢谢! Zeem

回答

3

您可以使用array_slice此:

foreach (array_slice($arr, 0, 5, true) as $k => $v) { 
    /* Do stuff 1-5 */ 
} 
foreach (array_slice($arr, 5, null, true) as $k => $v) { 
    /* Do stuff 6-end */ 
} 
+0

谢谢先生!像魅力一样工作 – zeemy23 2011-05-10 18:03:20

0

您是否在寻找类似...的东西?

$i = 0; 
foreach ($var as $k => $v) { 
    if ($i < 5) { 
     // do something here for the first five iterations 
    } 
    else { 
     // do something else here for further iterations 
    } 
    $i++; 
} 
0
$i = 0; 
foreach ($arr as $k => $v) { 
    if ($i < 5) { 
     /* do stuff */ 
    } else { 
     /* other stuff */ 
    } 
    $i++; 
} 
0

我会假设你的数组是不相关的,和的thereforce $ k将是数字索引。如果不是这种情况,你需要你的$ i。

foreach ($arr as $k => $v) { 
    if ($k < 5) { 
     Do stuff 
    } else { 
     Do other stuff 
    } 
}