|
復(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)是沒(méi)有重建數(shù)組索引,就是說(shuō),數(shù)組的第三個(gè)元素沒(méi)了。
經(jīng)過(guò)查資料后,原來(lái)php提供了這個(gè)功能,只不過(guò)很間接。這個(gè)函數(shù)是array_splice()。
為了使用方便,我封裝成了一個(gè)函數(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)過(guò)測(cè)試可以知道,2的位置這個(gè)元素被真正的刪除了,并且重新建立了索引。
程序運(yùn)行結(jié)果:
復(fù)制代碼 代碼如下:
Array ( [0] => apple [1] => banana [2] => dog )
php array_splice() 函數(shù)
array_splice() 函數(shù)與 array_slice() 函數(shù)類(lèi)似,選擇數(shù)組中的一系列元素,但不返回,而是刪除它們并用其它值代替。如果提供了第四個(gè)參數(shù),則之前選中的那些元素將被第四個(gè)參數(shù)指定的數(shù)組取代。
最后生成的數(shù)組將會(huì)返回。
語(yǔ)法:array_splice(array,offset,length,array)
array:必需。規(guī)定數(shù)組。
offset:必需。數(shù)值。如果 offset 為正,則從輸入數(shù)組中該值指定的偏移量開(kāi)始移除。如果 offset 為負(fù),則從輸入數(shù)組末尾倒數(shù)該值指定的偏移量開(kāi)始移除。
length:可選。數(shù)值。如果省略該參數(shù),則移除數(shù)組中從 offset 到 結(jié)尾的所有部分。如果指定了 length 并且為正值,則移除這么多元素。如果指定了 length 且為負(fù)值,則移除從 offset 到數(shù)組末尾倒數(shù) length 為止中間所有的元素。
array:被移除的元素由此數(shù)組中的元素替代。如果沒(méi)有移除任何值,則此數(shù)組中的元素將插入到指定位置。
如果函數(shù)沒(méi)有刪除任何元素 (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 )
php技術(shù):PHP刪除數(shù)組中的特定元素的代碼,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。