5.5处理数组元素和键值位置
5.5 处理数组元素和键值位置
PHP的每个数组内部均会有一个指针指向当前元素。这里所谓的指针,可以把它理解成程序即将要处理的元素所在的位置。处理数组元素和键值(索引)的位置,就是获取数组某个位置上的元素,或获取该元素后,将该指针移动到的其他位置。PHP中,处理数组元素和键值位置的函数主要有以下几个。
·current():返回数组的当前元素,不移动当前指针位置。
·next():返回当前元素的下一个元素的值,并将指针向后移动一位,下一个元素不存在时,返回FALSE。
·prev():返回当前元素的上一个元素的值,并将指针向前移动一位,上一个元素不存在时,返回FALSE。
·end():返回数组的最后一个元素的值。
图5-8示意说明了这些函数在某数组中和元素的对应关系。

图5-8 位置处理函数和数组元素的对应关系
如图5-8所示,假如键值为1的元素是当前(current)元素,那么调用函数next,就会返回键值为2的元素,同时当前(current)指针移至位置[2],这意味着键值为2的元素成为当前元素。代码5-10演示了这些函数的用法。
注意 图5.8示意并不表示数组中有prev、next和end指针,该图只是说明函数和元素的对应关系,数组中只有一个指向当前元素的指针。
代码5-10 位置处理函数的用法5-10.php
01 <?php 02 $planet = array( 03 "Earth", 04 "Venus", 05 "Mars", 06 "Jupiter", 07 "Saturn" 08 ); // 定义数组$planet 09 10 $pos = current($planet); // 此时$pos=Earth 11 12 echo "pos1=".$pos; 13 echo "<br/>"; 14 echo "<br/>"; 15 16 $pos = next($planet); // 此时$pos=Venus 17 echo "pos2=".$pos; 18 echo "<br/>"; 19 echo "<br/>"; 20 21 $pos = current($planet); // 此时$pos=Venus 22 echo "pos3=".$pos; 23 echo "<br/>"; 24 echo "<br/>"; 25 26 $pos = prev($planet); // 此时$pos=Earth 27 echo "pos4=".$pos; 28 echo "<br/>"; 29 echo "<br/>"; 30 31 $pos = end($planet); // 此时$pos=Saturn 32 echo "pos5=".$pos; 33 echo "<br/>"; 34 echo "<br/>"; 35 36 $pos = current($planet); // 此时$pos=Saturn 37 echo "pos6=".$pos; 38 ?>
【代码解析】代码第02~08行先定义一个数组$planet,第10行使用current()获取数组的当前元素,刚创建好的数组当前元素是第一个元素。第16行使用next()函数又往后移动一个位置,第26行使用prev()往前移动一个位置,第31行直接用end()函数取最后一个位置的元素。这段代码的执行结果如图5-9所示。

图5-9 使用数组元素位置和键值处理函数
上一篇:5.4对数组进行分割、合并
下一篇:5.6对数组进行排序