5.10 压入和弹出数组元素
这里所说的压入是指向数组的末尾增加一个元素,而弹出是指将数组中的最后一个元素取出。PHP提供两个函数分别完成这两个功能,这两个函数是array_push()和array_pop()。
5.10.1 压入数组元素
函数array_push()将一个或多个元素压入数组的末尾,其语法如下。
int array_push(array $array, mixed $var)
该函数将参数$array当成一个数据栈,并将传入的参数$var压入$array的末尾。array的长度将根据入栈变量的数目增加,执行正常时,该函数返回数组$array新的单元总数。代码5-19演示了该函数的用法。
代码5-19 使用函数array_push()向数组压入元素5-19.php
01 <?php 02 $arr = array( 03 'Beijing', 04 'Lodon', 05 'Rome' 06 ); // 定义数组$arr 07 08 echo ' 原数组:'; 09 echo '<pre>'; 10 print_r($arr); // 输出数组的结构 11 12 array_push($arr,'Oslo','Seoul'); // 向数组压入俩元素 13 echo '<br/>'; 14 echo '<br/>'; 15 16 echo ' 调用函数array_push() 之后:'; 17 echo '<br/>'; 18 print_r($arr); 19 ?>
【代码解析】这段代码的执行结果如图5-19所示。从结果可以看出,第2次输出比第1次输出多了两个元素“Oslo”和“Seoul”,这是代码第12行的作用,使用函数array_push()将这两个元素压入数组。
5.10.2 弹出数组元素
函数array_pop()将数组最后一个元素弹出,其语法如下。
mixed array_pop(array $array)
该函数弹出并返回参数$array数组的最后一个单元,并将数组$array的长度减一。如果参数$array为空(或者不是数组),该函数将返回NULL。代码5-20演示了该函数的用法。
说明 使用本函数后会重置数组指针,相当于使用了函数reset()。
代码5-20 使用函数array_pop()弹出数组最后一个元素5-20.php
01 <?php 02 $arr = array( 03 'Beijing', 04 'Lodon', 05 'Rome', 06 'Moscow', 07 'Singapore' 08 ); // 定义数组$arr 09 10 echo ' 原数组:'; 11 echo '<pre>'; 12 print_r($arr); 13 echo '</pre>'; 14 15 $arr_tmp = array_pop($arr); // 弹出数组最后一个元素 16 echo '<br/>'; 17 18 echo '<pre>'; 19 echo 'pop 出数组的元素是:<b>'.$arr_tmp .'</b>'; 20 echo '<br/>'; 21 22 echo ' 调用函数array_pop() 之后:'; 23 print_r($arr); 24 ?>
【代码解析】这段代码的执行结果如图5-20所示。从结果可以看出,我们不仅要输出变化后的数组元素,还要输出被弹出数组的元素,所以第15行需要用变量$arr_tmp来获取弹出元素。
图5-19 使用函数array_push()向数组压入元素
图5-20 使用函数array_pop()弹出数组最后一个元素