关于PHP:PHP – 确定foreach中最后一个循环的有效方法

PHP - effective way to determine last loop in foreach

每当我必须确定foreach循环中的current循环是否是最后一个循环时,我都会使用类似的方法:

1
2
3
4
5
6
7
8
9
10
<?php
$i = count($myArray);
foreach ($myArray as $item) {
    /** code goes here... */
    $i--;
    if ($i == 0) {
        /** something happens here */
    }
}
?>

通常,这可以通过知道循环变量(第一个、最后一个,…)很容易地在模板化系统(如Latte、Smarty等)中完成。我的问题是:PHP中是否有类似的功能?

关键是必须创建$i变量,然后增加它并检查该值。我只想知道是否有一个简单的解决方案,让我的生活变得简单一点。:)


在您的foreach中使用这个来检查项目是否是最后一个项目。

1
2
3
if ($item === end($myArray)) {
    // Last item
}

用于检查项目是否为第一个项目

1
2
3
if ($item === reset($myArray)) {
    // First item
}


通过检查($item==end($myarray))

1
2
3
4
5
6
7
foreach($myArray as $key => $item) {
   echo $item."<br />";
   end($myArray);
   if ($key === key($myArray)) {
      echo 'LAST ELEMENT!';
   }
}