【问题标题】:easiest way to establish that a foreach loop is in it's final iteration [duplicate]确定foreach循环处于其最终迭代中的最简单方法[重复]
【发布时间】:2011-06-29 23:32:54
【问题描述】:

可能重复:
How to determine the first and last iteration in a foreach loop?

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

【问题讨论】:

标签: php loops foreach


【解决方案1】:

我解决这个问题的方法是增加一个变量并根据数组的大小测试该变量 (count()):

$i = 0;
$c = count($array);

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

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

【讨论】:

  • 如果我们已经有了循环,那么这些东西的目的是什么?
  • @Ashot:'这样的东西'的目的是回答被问到的问题。我假设,也许是不公平的,OP 知道并且出于特定原因选择不使用 for 循环。
【解决方案2】:

有两种方法:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      嗯... 使用这个:

       $i =0;
       $c = count($employeeAges);
          foreach( $employeeAges as $key => $value){
          if($c-$i<=1){
                //DO SOMETHING
              }else{
                //default for other loops
              }
              i++;
           }
      

      【讨论】:

        猜你喜欢
        • 2019-11-30
        • 1970-01-01
        • 2023-04-06
        • 2019-02-02
        • 1970-01-01
        • 2010-11-07
        • 1970-01-01
        • 2021-05-11
        • 2013-06-17
        相关资源
        最近更新 更多