PHP 如何确定 foreach 循环中的第一个和最后一个迭代?
问题很简单。我的代码中有一个循环:foreach
foreach($array as $element) {
//code
}
在这个循环中,我想在第一次或最后一次迭代时做出不同的反应。
如何做到这一点?
问题很简单。我的代码中有一个循环:foreach
foreach($array as $element) {
//code
}
在这个循环中,我想在第一次或最后一次迭代时做出不同的反应。
如何做到这一点?
如果您更喜欢不需要在循环外部初始化计数器的解决方案,则可以将当前迭代键与告诉您数组的最后一个/第一个键的函数进行比较。
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 已经是 EOL(生命周期结束),所以这里只是历史参考。避免使用。
foreach ($array as $key => $element) {
reset($array);
if ($key === key($array)) {
echo 'FIRST ELEMENT!';
}
end($array);
if ($key === key($array)) {
echo 'LAST ELEMENT!';
}
}
您可以使用计数器:
$i = 0;
$len = count($array);
foreach ($array as $item) {
if ($i == 0) {
// first
} else if ($i == $len - 1) {
// last
}
// …
$i++;
}