猿问

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

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

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

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

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

怎么做?


慕标5832272
浏览 3266回答 3
3回答

开满天机

你可以用一个柜台:$i = 0;$len = count($array);foreach ($array as $item) {     if ($i == 0) {         // first     } else if ($i == $len - 1) {         // last     }     // …     $i++;}

斯蒂芬大帝

如果您喜欢不需要在循环之外初始化计数器的解决方案,我建议将当前的迭代键与告诉您数组的最后/第一个键的函数进行比较。这在即将发布的PHP 7.3中变得更高效(更易读)。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版本的解决方案:foreach($array as $key => $element) {     reset($array);     if ($key === key($array))         echo 'FIRST ELEMENT!';     end($array);     if ($key === key($array))         echo 'LAST ELEMENT!';}

森栏

为了找到最后一项,我发现这段代码每次都有效:foreach( $items as $item ) {     if( !next( $items ) ) {         echo 'Last Item';     }}
随时随地看视频慕课网APP
我要回答