1.array_pad函数
<?php //定义一个数组 $items=array("农药1"=>"杀虫剂","农药2"=>"除草剂","化肥1"=>"化肥"); $result=array_pad($items,4,"其它"); print_r($result); ?>
显示:
Array ( [农药1] => 杀虫剂 [农药2] => 除草剂 [化肥1] => 化肥 [0] => 其它 )
当array_pad函数中,设定的数组长度小于现有数组时,会输出什么呢?
1 <?php 2 3 //定义一个数组 4 $items=array("农药1"=>"杀虫剂","农药2"=>"除草剂","化肥1"=>"化肥"); 5 $result=array_pad($items,2,"其它"); 6 print_r($result); 7 ?>
结果是不会改变数组,正常输出数组:
Array ( [农药1] => 杀虫剂 [农药2] => 除草剂 [化肥1] => 化肥 )
2.array_splice函数
(1)删除前两个数据:
1 <?php 2 3 //定义一个数组 4 $items=array("杀虫剂","除草剂","化肥","中间体"); 5 $result=array_splice($items,2); 6 print_r($result); 7 ?>
显示:
Array ( [0] => 化肥 [1] => 中间体 )
(2)一个有趣的实验,首先:
<?php $a1=array("Dog","Cat","Horse","Bird"); array_splice($a1,2); print_r($a1); ?>
offset为2,表示从第二个元素开始删除,结果输出为:
Array ( [0] => Dog [1] => Cat )
但是,如果将array_splice($a1,2); 赋予一个变量——$a2,然后再输出$a2,那么,就会得到一个相反的结果:
1 <?php 2 $a1=array("Dog","Cat","Horse","Bird"); 3 $a2=array_splice($a1,2); 4 print_r($a2); 5 ?>
输出:
Array ( [0] => Horse [1] => Bird )
由此,我们可以得到一个结论,array_splice函数的值,是一个数组,而$a1也是一个数组,经过array_splice函数操作后,数组$a1的大小就发生了改变,一些元素被删掉了。那些被删掉的元素就进入了array_splice这个函数里,如果将这个函数赋予给一个变量,如$a2,那么$a2这个数组,就是被删除掉的值。
(3)删除从第一个到倒数第一个(第四个)元素之间的所有元素:
1 <?php 2 $a1=array("Dog","Cat","Horse","Bird"); 3 array_splice($a1,1,-1); 4 print_r($a1); 5 ?>
显示:
Array ( [0] => Dog [1] => Bird )
来检验一下,array_splice函数里,是否含有被删除的数组元素:
<?php $a1=array("Dog","Cat","Horse","Bird"); $a2=array_splice($a1,1,-1); print_r($a2); ?>
显示出被删除的两个元素:
Array ( [0] => Cat [1] => Horse )
(4)删除从第一个到最后一个元素之间的所有元素,并且用*代替。
1 <?php 2 $a1=array("Dog","Cat","Horse","Bird"); 3 array_splice($a1,1,2,"*"); 4 print_r($a1); 5 ?>
显示:
Array ( [0] => Dog [1] => * [2] => Bird )
(5)删除从数组末尾,倒数一个元素。并以*代替被删掉的数据。
1 <?php 2 $a1=array("Dog","Cat","Horse","Bird"); 3 array_splice($a1,-1,1,"*"); 4 print_r($a1); 5 ?>
应该显示出:狗,猫,*
Array ( [0] => Dog [1] => Cat [2] => Horse [3] => * )
*也可以改成另外一个数组。
(6)删除数组(假设数组很长,无法数清数组所含元素的个数)倒数两个元素。
分析:假设数组含有元素n个,那么要删除的就是第n-1和第n个元素。我们可以用count($a1)得出n,从n-2开始,剔除2个元素即可。
代码为:
1 <?php 2 $a1=array("Dog","Cat","Horse","Bird"); 3 $n1=count($a1); 4 $n1-=2; 5 array_splice($a1,$n1,2); 6 print_r($a1); 7 ?>
显示:
Array ( [0] => Dog [1] => Cat )
验证一下,如果数组元素有10个,剔除后两个元素,
1 <?php 2 $a1=array("Dog","Cat","Horse","Bird","5","6","7","8","9","10"); 3 $n1=count($a1); 4 $n1-=2; 5 array_splice($a1,$n1,2); 6 print_r($a1); 7 ?>
显示:
Array ( [0] => Dog [1] => Cat [2] => Horse [3] => Bird [4] => 5 [5] => 6 [6] => 7 [7] => 8 )