有8种数组指针操作函数:1、current(),返回当前数组指针所指向的值;2、next(),移动指针到下一位,返回该位的值;3、prev(),移动指针到上一位,返回该位的值;4、reset(),重置指针,指向第一个元素;5、end()等。

本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑

数组指针函数有reset()、prev()、current()、pos()、next()、end()、key()、each()

其中reset()、prev()、current()、pos()、next()、end()都是与数组的值有关的函数,而key()只与数组键有关,each()可以获得数组的值和键

current()函数

参数是一个数组,引用传值,返回当前数组指针所指向的值,指针移动超出了数组的末尾,返回false,在数组为空的情况下返回false

数组的指针默认在数组的第一位

<?php
$arr = [11,22,33,44,55,66];
echo current($arr);
?>

1.png

pos()函数

current 的别名,用法一样。

next()函数

参数是一个数组,引用传值,移动数组指针到下一位,返回该位的值,当该位没有元素时返回false,空数组也会返回false

<?php
$arr = [11,22,33,44,55,66];
echo current($arr)."<br>";   //指针指向11
next($arr);                    //指针指向22
echo current($arr)."<br>";   //指针指向22
next($arr);                    //指针指向33
next($arr);                    //指针指向44
echo current($arr)."<br>";   //指针指向44
?>

2.png

prev()函数

参数是一个数组,引用传值,移动数组指针到上一位,返回该位的值,当该位没有元素时返回false,空数组也会返回false

<?php
$arr = [11,22,33,44,55,66];
echo current($arr)."<br>";   //指针指向11
next($arr);                    //指针指向22
next($arr);                    //指针指向33
echo current($arr)."<br>";   //指针指向33
prev($arr);                    //指针指向22
echo current($arr)."<br>";   //指针指向22

?>

3.png

reset()函数

参数是一个数组,引用传值,将一个数组的内部指针重置到首位,也就是数组的第一个元素所在的位置,然后返回第一个元素的值,在数组为空的情况下返回false

<?php
$arr = [11,22,33,44,55,66];
echo current($arr)."<br>";   //指针指向11
next($arr);                    //指针指向22
next($arr);                    //指针指向33
echo current($arr)."<br>";   //指针指向33
reset($arr);               //指针指向11
echo current($arr)."<br>";   //指针指向11
?>

4.png

end()函数

参数是一个数组,引用传值,将一个数组的内部指针移动到数组的最后一个元素所在的位置,然后返回最后一个元素的值,在数组为空的情况下返回false

<?php
$arr = [11,22,33,44,55,66];
echo current($arr)."<br>";   //指针指向11
end($arr);                 //指针指向11
echo current($arr)."<br>";   //指针指向66
?>

5.png

key()函数

参数是一个数组,引用传值,返回当前指针所指向的元素的键,当指针所指的那一位没有元素返回null,空数组返回null

<?php
$arr = [11,22,33,44,55,66];
var_dump($arr);
echo current($arr)."<br>";   //当前指针指向11 
echo key($arr)."<br>";   //当前元素的键名
?>

6.png

each()函数

参数是一个数组,引用传值,返回当前指针所指的元素的值和键,并且移动指针到下一位

<?php
$arr = [11,22,33,44,55,66];
var_dump($arr);
echo current($arr)."<br>";   //指针指向11
next($arr);                    //指针指向22
echo current($arr)."<br>";   //指针指向22
$item = each($arr);          //指针指向33
print_r($item);                //指针指向33
echo current($arr)."<br>";   //指针指向33

?>

7.png

php7.2之后极度不鼓励使用这个函数

Warning

This function has been DEPRECATED as of PHP 7.2.0. Relying on this function is highly discouraged


在php中数组指针有几种操作函数