foreach判断最后一个_3分钟短文 | PHP 遍历数组,怎么锁定第一个和最后一个元素?...

引言

对于数组遍历,使用一个 foreach 几乎就完全够用了。那么你一般在编写代码的时候,怎么判断是循环的第一个元素,和最后一个元素呢?

本文通过几个示例,展示实现此功能的多种方法。

214ceea814a14f0cfa554a9c9990d1a7.png

学习时间

首先,我们使用最直接,最容易想到的办法,使用一个计数器 $i 用于标记当前的索引位置。如果是第一个,则 $i == 0;如果是最后一个,则 $i 等于数组长度减一。代码如下:

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

上述代码实现简单直接,但是写的优点太长了,而且也不美观。有没有更优雅一些的方式呢?

我们试着从PHP数组操作函数上着手,内置函数中提供了 reset,用于将指针指向数组的第一个元素;end 函数,将指针指向数组的最后一个元素。下面的代码,就是这样实现的:

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

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

函数 key() 用于获取当前数组指针所指向的索引值。

而 foreach 循环内将元素匹配到 $key => $element 两个变量,$key 存储循环所指向的索引位置。

PHP 的数组操作函数为我们提供了思路,那么当然还可以用 prev 函数,返回前一个元素的值;使用 next 函数,获取下一个元素的值。

这两个函数都是在获取不到元素时返回 false。那么代码就可以这样来写了:

foreach( $items as $item ) {

    if( !prev( $items ) ) {
        echo 'First Item';
    }

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

写在最后

本文通过三种方式实现了定位 foreach 循环体内,第一个元素和最后一个元素的方法。希望大家熟练使用。

Happy coding :_)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值