PHP数组学习之第一/最后一个元素的获取(二)
在之前的文章《PHP数组学习之第一/最后一个元素的获取(一)》中,给大家介绍了获取数组第一个元素和最后一个元素的方法,但这种方法的本质上是将元素取出然后返回,返回的第一个元素和最后一个元素在数组中不存在了。但有时我们只是想获取数组第一个元素和最后一个元素,并不想改变数组,那要怎么做呢?
其实很简单,PHP中内置的函数reset()和end()即可实现。今天我们就来带大家了解一下reset()和end()函数,通过代码实例看看reset()和end()函数如何获取数组第一个元素和最后一个元素。(附:PHP函数之array数组函数视频讲解)
PHP中每个数组都有一个内部指针,即数组指针;该指针会指向数组中的某个元素(该元素就是数组的当前元素)。
数组指针默认最初指向数组中的第一个元素,然后通过移动或改变指针的位置,可访问数组中的任意元素。
而reset()和end()函数就可以改变指针位置:
-
reset()函数:可以将数组中的内部指针指向第一个元素,并返回该元素的值。
-
end()函数:可以将数组中的内部指针指向最后一个元素,并返回该元素的值。
下面通过代码实例来具体了解一下。
reset()函数获取数组第一个元素
实例1:
<?php header("Content-type:text/html;charset=utf-8"); $arr= array("香蕉","苹果","梨子","橙子","橘子","榴莲"); var_dump($arr); //获取数组中的第一个元素 $first = reset($arr); echo "数组第一个元素:" .$first; ?>
输出:
像这种没有定义键名的数组,输出第一个元素的值时,也可使用“$数组名[0]”的形式获取。
<?php header("Content-type:text/html;charset=utf-8"); $arr= array("香蕉","苹果","梨子","橙子","橘子","榴莲"); var_dump($arr); //获取并输出数组中的第一个元素 echo "数组第一个元素:" .$arr[0]; ?>
实例2:
<?php header("Content-type:text/html;charset=utf-8"); $arr= array("香蕉"=>"3元","苹果"=>"5元","梨子"=>"6元","橙子"=>"4元","橘子"=>"3元","榴莲"=>"23元"); var_dump($arr); //获取数组中的第一个元素 $first = reset($arr); echo "数组第一个元素的键名和键值:".key($arr)." ".$first; ?>
输出:
上面代码示例中,我们使用reset($arr)
将数组中的内部指针指向第一个元素,那么此时数组的“当前元素”为它的第一个元素“"香蕉"=>"3元"”,所以echo $first
会输出“3元”,使用key($arr)
获取到的键名为第一个元素的键名“"香蕉"”。
key()函数可以获取数组当前元素的键名,而键值可以使用current()函数返回。
end()函数获取数组最后一个元素
<?php header("Content-type:text/html;charset=utf-8"); $arr= array("香蕉"=>"3元","苹果"=>"5元","梨子"=>"6元","橙子"=>"4元","橘子"=>"3元","榴莲"=>"23元"); var_dump($arr); //获取数组中的第一个元素 $last = end($arr); echo "数组最后一个元素的键名和键值:".key($arr)." ".$last; ?>
输出:
上面代码示例中,我们使用end($arr)将数组中的内部指针指向最后一个元素,那么此时数组的“当前元素”为它的最后一个元素“"榴莲"=>"23元"”,因此echo $last
会输出“23元”,key($arr)
会返回最后一个元素的键名“"榴莲"”。
推荐:《PHP面试题大汇总(收藏)》《php视频教程》