在上一篇文章中我們介紹了刪除數(shù)組中第一個(gè)元素或最后一個(gè)元素的方法,感興趣的可以點(diǎn)擊鏈接查看→《php數(shù)組學(xué)習(xí)之如何去除首尾的值》。這次我們繼續(xù)介紹刪除數(shù)組元素,帶大家了解刪除數(shù)組任意元素的方法。
大部分時(shí)候,需要?jiǎng)h除的元素是不固定的,不一定是數(shù)組開頭或結(jié)尾,也不一定只刪除一個(gè),這也就無(wú)法使用array_shift()和array_pop()函數(shù)了。那么要如何才能去刪除數(shù)組中的任意元素呢?今天我們來(lái)了解了解。
之前在《PHP數(shù)組學(xué)習(xí)之巧用函數(shù)插入元素(二)》中我們介紹了array_splice()函數(shù),它是一個(gè)強(qiáng)大的函數(shù),有多重功能:可以插入數(shù)組元素、可以替換數(shù)組元素,當(dāng)然也可以刪除數(shù)組元素(畢竟array_splice()函數(shù)的本職工作是刪除指定元素并用其它值取代)。下面我們就來(lái)看看它的刪除功能。
我們來(lái)看下面一個(gè)小例子。
<?php header("Content-type:text/html;charset=utf-8"); $arr=array(10,12,20,25,24); echo "原數(shù)組:"; var_dump($arr); echo "刪除后的數(shù)組:" ; array_splice($arr,2); var_dump($arr); ?>
輸出結(jié)果為:
可以看出,我們使用array_splice($arr,2)
從$arr數(shù)組的第3個(gè)元素開始刪除元素,共刪除了3個(gè)元素(將從第3個(gè)元素開始的所有元素刪除了)。array_splice($arr,$start)
會(huì)刪除從$start位置開始的所有元素刪除。
$start參數(shù)有三種取值情況:
-
為正數(shù),那么從$start位置開始,往后刪除;
-
為0,那么從第一個(gè)元素開始,往后刪除;
-
為負(fù)數(shù),則從距離 $arr 末端 -start 的位置開始,從后往前刪除。例如 -2 意味著從數(shù)組的倒數(shù)第二個(gè)元素開始。
<?php header("Content-type:text/html;charset=utf-8"); $arr=array(10,12,20,25,24); echo "原數(shù)組:"; var_dump($arr); echo "刪除后的數(shù)組:" ; array_splice($arr,-2); var_dump($arr); ?>
輸出結(jié)果為:
array_splice()函數(shù)是強(qiáng)大的,可以刪除多個(gè)元素,也可只刪除一個(gè)元素,那就需要給該函數(shù)指定一個(gè)$length
參數(shù)(第三個(gè)參數(shù)),該參數(shù)用來(lái)規(guī)定刪除的元素個(gè)數(shù)。
<?php header("Content-type:text/html;charset=utf-8"); $arr=array(10,12,20,25,24); echo "原數(shù)組:"; var_dump($arr); echo "刪除后的數(shù)組:" ; array_splice($arr,2,1); var_dump($arr); ?>
輸出結(jié)果為:
可以看出只刪除了第三個(gè)元素“20”。
在刪除元素操作中,$length參數(shù)也有三種取值情況:
-
為正數(shù),那么就表示刪除 length 個(gè)元素;
-
為負(fù)數(shù),那么將刪除從 start 開始,到數(shù)組末尾倒數(shù) length 為止的所有元素;
-
如果省略,那么將刪除從 start 開始,一直到數(shù)組末尾的所有元素。
<?php header("Content-type:text/html;charset=utf-8"); $arr=array(10,12,20,25,24); echo "原數(shù)組:"; var_dump($arr); echo "刪除后的數(shù)組:" ; array_splice($arr,2,-1); var_dump($arr); ?>
輸出結(jié)果為:
$length參數(shù)還可以為0,那么就表示不刪除元素,可以和該函數(shù)的第四個(gè)參數(shù)$value相配合,進(jìn)行插入操作(這里就不做具體介紹了)。
好了就說(shuō)到這里了,有其他想知道的,可以點(diǎn)擊這個(gè)哦。→ →php視頻教程
最后給大家推薦一個(gè)PHP數(shù)組的免費(fèi)視頻教程:PHP函數(shù)之a(chǎn)rray數(shù)組函數(shù)視頻講解,快來(lái)學(xué)習(xí)吧!