如何确定 foreach 循环中的第一次和最后一次迭代?

问题描述

如果您更喜欢不需要在循环外初始化计数器的解决方案,那么您可以将当前迭代键与告诉您数组的最后一个/第一个键的函数进行比较。

PHP 7.3 及更新版本:

foreach ($array as $key => $element) {
    if ($key === array_key_first($array)) {
        echo 'FirsT ELEMENT!';
    }

    if ($key === array_key_last($array)) {
        echo 'LAST ELEMENT!';
    }
}

PHP 7.2 及更早版本:

foreach ($array as $key => $element) {
    reset($array);
    if ($key === key($array)) {
        echo 'FirsT ELEMENT!';
    }

    end($array);
    if ($key === key($array)) {
        echo 'LAST ELEMENT!';
    }
}

解决方法

问题很简单。我的代码中有一个foreach循环:

foreach($array as $element) {
    //code
}

在这个循环中,我想在我们第一次或最后一次迭代时做出不同的反应。

这个怎么做?