PHP刪除數(shù)組元素的具體函數(shù)介紹
我們在使用PHP語言進(jìn)行實(shí)際代碼編寫時(shí),經(jīng)常會(huì)和數(shù)組打上交道,這對于初學(xué)者來說是比較困難的。今天我們就要向大家介紹如何實(shí)現(xiàn)PHP刪除數(shù)組元素。
PHP中的數(shù)組要添加元素非常簡單,直接用賦值就行了,數(shù)組的key會(huì)自動(dòng)增加,但是要?jiǎng)h除數(shù)組中的元素呢?你想過嗎?是不是很少遇到?我近日在處理一個(gè)購物籃程序時(shí)遇到了要實(shí)現(xiàn)PHP刪除數(shù)組元素的問題,尋找了半天,終于找到了刪除數(shù)組的方法,其實(shí)很簡單.
開始我參照一篇文章《字符串?dāng)?shù)組,刪除數(shù)組元素》(OSO中有)中的方法,用unset,但是有個(gè)缺陷.如$a是一個(gè)數(shù)組:
- < ? $a=array("red", "green", "blue", "yellow");
- count($a); //得到4
- unset($a[1]); //刪除第二個(gè)元素
- count($a); //得到3
- echo $a[2]; //數(shù)組中僅有三個(gè)元素,本想得到***一個(gè)元素,但卻得到blue,
- echo $a[1]; //無值
- ?>
也就是說在PHP刪除數(shù)組元素后,數(shù)組中的元素個(gè)數(shù)(用count()得到)變了,但數(shù)組下標(biāo)卻沒有重新排列,還必須用刪除數(shù)組前的key來操作相應(yīng)的值.
后來我采用另一種方法,其實(shí)根本就不叫"方法",是用PHP4現(xiàn)成的函數(shù)array_splice().
- < ? $a=array("red", "green", "blue", "yellow");
- count ($a); //得到4
- array_splice($a,1,1); //刪除第二個(gè)元素
- count ($a); //得到3
- echo $a[2]; //得到y(tǒng)ellow
- echo $a[1]; //得到blue
- ?>
把這個(gè)程序和前一個(gè)相對比,就可以看到,array_splice()不僅刪除了元素,還把元素重排了,這樣在數(shù)組各元素中間就不會(huì)有空值(如前例中的$a[1]).
array_splice()其實(shí)是替換數(shù)組元素的函數(shù),但如果不加替換值就簡單的刪除元素.下面是array_splice()的用法:
array array_splice (array input, int offset [, int length [, array replacement]])
參數(shù)input是要操作的數(shù)組;offset是從第幾個(gè)元素開始,為正時(shí)從***個(gè)元素開始數(shù),為負(fù)時(shí)從***一個(gè)元素開始數(shù);length為要替換/PHP刪除數(shù)組元素的個(gè)數(shù),省略時(shí)就從offset開始到數(shù)組結(jié)束,也是可正可負(fù),原理和offset一樣;relacement為要替換的值.