为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
繁花如伊 2019-08-02 11:02:23
如何确定Foreach循环中的第一次和最后一次迭代?问题很简单。我有一个foreach循环到我的代码中:foreach($array as $element) {     //code}在这个循环中,我想在第一次或最后一次迭代时做出不同的反应。怎么做?
查看完整描述

3 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

你可以用一个柜台:

$i = 0;$len = count($array);foreach ($array as $item) {
    if ($i == 0) {
        // first
    } else if ($i == $len - 1) {
        // last
    }
    // …
    $i++;}



查看完整回答
反对 回复 2019-08-03
?
GCT1015

TA贡献1827条经验 获得超4个赞

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

这在即将发布的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!';}



查看完整回答
反对 回复 2019-08-03
?
慕少森

TA贡献2019条经验 获得超9个赞


为了找到最后一项,我发现这段代码每次都有效:

foreach( $items as $item ) {
    if( !next( $items ) ) {
        echo 'Last Item';
    }}


查看完整回答
反对 回复 2019-08-03
  • 3 回答
  • 0 关注
  • 840 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信