php
php foreach循环获取第一个和最后一个元素,怎么做?
foreach循环获取第一个和最后一个元素,怎么做?
引言对于数组遍历,使用一个 foreach 几乎就完全够用了。那么你一般在编写代码的时候,怎么判断是循环的第一个元素,和最后一个元素呢?
本文通过几个示例,展示实现此功能的多种方法。
学习时间首先,我们使用最直接,最容易想到的办法,使用一个计数器 $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 gt $element) { reset($array) if ($key key($array)) echo FIRST ELEMENT! end($array) if ($key key($array)) echo LAST ELEMENT! }
函数 key() 用于获取当前数组指针所指向的索引值。
而 foreach 循环内将元素匹配到 $key gt $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 :_)
我是 @程序员小助手 ,持续分享编程知识,欢迎关注。
phpforeach实现原理?
PHP foreach语法 foreach 循环只适用于数组,并用于遍历数组中的每个键/值对。 foreach ($array as $value) { code to be executed }每进行一次循环迭代,当前数组元素的值就会被赋值给 $value 变量,并且数组指针会逐一地移动,直到到达最后一个数组元素。 下面的例子演示的循环将输出给定数组($colors)的值: 实例