关于php:确定foreach循环在最后一次迭代中的最简单方法

easiest way to establish that a foreach loop is in it's final iteration

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How to determine the first and last iteration in a foreach loop?

确定foreach循环在其最终循环中并相应地执行不同功能的最佳方法是什么?


我的方法是增加一个变量,并根据数组的大小测试该变量(count())。

1
2
3
4
5
6
7
8
9
10
11
12
$i = 0;
$c = count($array);

foreach($array as $key => $value) {
    $i++;
    if ($i == $c) {
        // last iteration
    }
    else {
        // do stuff
    }
}

显然,这可能不是最有效的方法。


有两种方法可以做到这一点:

  • 在进入循环之前确定数组的最后一个值是什么,并在每次迭代中将当前项与以前标识的项进行比较。
  • 使用for循环代替,或使用foreach循环的递增变量检查if(count($someArr) - 1 == $currentIteration)。如果是这样,那么就按逻辑来做。

  • 嗯…使用此:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     $i =0;
     $c = count($employeeAges);
        foreach( $employeeAges as $key => $value){
        if($c-$i<=1){
              //DO SOMETHING
            }else{
              //default for other loops
            }
            i++;
         }


    在这种情况下,最好的方法是使用for循环。