在迭代中途执行foreach中的更改代码

时间:2011-05-10 15:08:56

标签: php foreach

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

我找到了这个片段,它在给定的限制下休息,但是如何在另一个foreach循环的最后一次迭代中继续?无论如何,这可能不是最佳方式。

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

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

谢谢! Zeem

4 个答案:

答案 0 :(得分:4)

您可以使用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 */
}

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

答案 2 :(得分:0)

$i = 0;
foreach ($arr as $k => $v) {
    if ($i < 5) { 
        /* do stuff */
    } else { 
        /* other stuff */
    }
    $i++;
}

答案 3 :(得分:0)

我假设你的数组不是关联的,而且$ k将是数字索引。如果不是这样的话,你需要你的$ i。

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