PHP - 确定 foreach 中最后一个循环的有效方法

suk*_*nej 3 php foreach loops

每当我必须确定 foreach 循环中的当前循环是否是最后一个循环时,我会使用以下方法:

<?php
$i = count($myArray);
foreach ($myArray as $item) {
    /** code goes here... */
    $i--;
    if ($i == 0) {
        /** something happens here */
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

通常,这可以通过知道循环变量(first、last、...)在模板系统(例如 Latte、Smarty 等)中轻松完成。我的问题是:PHP 中是否有类似的功能?

关键是你必须创建$i变量,然后增加它并检查值。我只是想知道是否有更简单的解决方案可以让我的生活更轻松一些。:)

phr*_*kv6 6

在您foreach的内部使用它来检查该项目是否是最后一个项目。

if ($item === end($myArray)) {
    // Last item
}
Run Code Online (Sandbox Code Playgroud)

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

if ($item === reset($myArray)) {
    // First item
}
Run Code Online (Sandbox Code Playgroud)

  • 所以看看这个例子:array with values: 2,4,5,2 - 你的代码将为第一个元素返回 true 因为 first 和 last 具有相同的值 (2认同)