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 )