比如下面的程序: 復(fù)制代碼 代碼如下: <?php $arr = array('apple','banana','cat','dog'); unset($arr[2]); print_r($arr); ?> 程序運(yùn)行結(jié)果: 復(fù)制代碼 代碼如下: Array ( [0] => apple [1] => banana [3] => dog ) 但是這種方法的最大缺點(diǎn)是沒有重建數(shù)組索引,就是說,,數(shù)組的第三個元素沒了,。 經(jīng)過查資料后,原來PHP提供了這個功能,,只不過很間接,。這個函數(shù)是array_splice()。 為了使用方便,,我封裝成了一個函數(shù),,方便大家使用: 復(fù)制代碼 代碼如下: <?php function array_remove(&$arr, $offset) { array_splice($arr, $offset, 1); } $arr = array('apple','banana','cat','dog'); array_remove($arr, 2); print_r($arr); ?> 經(jīng)過測試可以知道,2的位置這個元素被真正的刪除了,,并且重新建立了索引,。 程序運(yùn)行結(jié)果: 復(fù)制代碼 代碼如下: Array ( [0] => apple [1] => banana [2] => dog ) PHP array_splice() 函數(shù) array_splice() 函數(shù)與 array_slice() 函數(shù)類似,選擇數(shù)組中的一系列元素,,但不返回,,而是刪除它們并用其它值代替,。如果提供了第四個參數(shù),則之前選中的那些元素將被第四個參數(shù)指定的數(shù)組取代,。 最后生成的數(shù)組將會返回,。 語法:array_splice(array,offset,length,array) array:必需。規(guī)定數(shù)組,。 offset:必需,。數(shù)值。如果 offset 為正,,則從輸入數(shù)組中該值指定的偏移量開始移除,。如果 offset 為負(fù),則從輸入數(shù)組末尾倒數(shù)該值指定的偏移量開始移除,。 length:可選,。數(shù)值。如果省略該參數(shù),,則移除數(shù)組中從 offset 到 結(jié)尾的所有部分,。如果指定了 length 并且為正值,則移除這么多元素,。如果指定了 length 且為負(fù)值,,則移除從 offset 到數(shù)組末尾倒數(shù) length 為止中間所有的元素。 array:被移除的元素由此數(shù)組中的元素替代,。如果沒有移除任何值,,則此數(shù)組中的元素將插入到指定位置。 如果函數(shù)沒有刪除任何元素 (length=0),,則替代數(shù)組將從 start 參數(shù)的位置插入。 示例1: 復(fù)制代碼 代碼如下: <?php $a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird"); $a2=array(0=>"Tiger",1=>"Lion"); array_splice($a1,0,2,$a2); print_r($a1); ?> //output : Array ( [0] => Tiger [1] => Lion [2] => Horse [3] => Bird ) 示例2: 復(fù)制代碼 代碼如下: <?php $a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird"); $a2=array(0=>"Tiger",1=>"Lion"); print_r(array_splice($a1,0,2,$a2)); ?> //output : Array ( [0] => Dog [1] => Cat ) 示例3: 復(fù)制代碼 代碼如下: <?php // length 參數(shù)設(shè)置為 0 $a1=array(0=>"Dog",1=>"Cat"); $a2=array(0=>"Tiger",1=>"Lion"); array_splice($a1,1,0,$a2); print_r($a1); ?> //output : Array ( [0] => Dog [1] => Tiger [2] => Lion [3] => Cat ) |
|