在上一篇文章中我們介紹了刪除數組中第一個元素或最後一個元素的方法,感興趣的可以點擊鏈接查看→《PHP數組學習之如何去除首尾的值 》。這次我們繼續介紹刪除陣列元素,帶大家了解刪除陣列任意元素的方法。
大部分時候,需要刪除的元素是不固定的,不一定是數組開頭或結尾,也不一定只刪除一個,這也就無法使用array_shift()和array_pop()函數了。那麼要如何才能去刪除陣列中的任意元素呢?今天我們來了解了解。
之前在《PHP數組學習之巧用函數插入元素(二)》中我們介紹了array_splice()函數,它是一個強大的函數,有多重功能:可以插入數組元素、可以替換數組元素,當然也可以刪除數組元素(畢竟array_splice()函數的本職工作是刪除指定元素並用其它值取代)。下面我們就來看看它的刪除功能。
我們來看下面一個小例子。
<?php header("Content-type:text/html;charset=utf-8"); $arr=array(10,12,20,25,24); echo "原数组:"; var_dump($arr); echo "删除后的数组:" ; array_splice($arr,2); var_dump($arr); ?>
輸出結果為:
可以看出,我們使用array_splice($arr,2)
從$arr數組的第3個元素開始刪除元素,共刪除了3個元素(將從第3個元素開始的所有元素刪除了)。 array_splice($arr,$start)
會刪除從$start位置開始的所有元素刪除。
$start參數有三種取值情況:
為正數,那麼從$start位置開始,往後刪除;
#為0,那麼從第一個元素開始,往後刪除;
為負數,則從距離$arr 末端-start# 的位置開始,從後往前刪除。例如 -2 意味著從陣列的倒數第二個元素開始。
<?php header("Content-type:text/html;charset=utf-8"); $arr=array(10,12,20,25,24); echo "原数组:"; var_dump($arr); echo "删除后的数组:" ; array_splice($arr,-2); var_dump($arr); ?>
輸出結果為:
#array_splice()函數是強大的,可以刪除多個元素,也可只刪除一個元素,那就需要給該函數指定一個$length
參數(第三個參數),該參數用來規定刪除的元素個數。
<?php header("Content-type:text/html;charset=utf-8"); $arr=array(10,12,20,25,24); echo "原数组:"; var_dump($arr); echo "删除后的数组:" ; array_splice($arr,2,1); var_dump($arr); ?>
輸出結果為:
可以看出只刪除了第三個元素「20」。
在刪除元素運算中,$length參數也有三種取值情況:
為正數,那麼就表示刪除length 個元素;
為負數,那麼將刪除從start 開始,到數組末尾倒數length 為止的所有元素;
如果省略,那麼將刪除從start 開始,一直到數組末尾的所有元素。
<?php header("Content-type:text/html;charset=utf-8"); $arr=array(10,12,20,25,24); echo "原数组:"; var_dump($arr); echo "删除后的数组:" ; array_splice($arr,2,-1); var_dump($arr); ?>
輸出結果為:
#$length
參數還可以為0,那就表示不刪除元素,可以和函數的第四個參數$value相配合,進行插入操作(這裡就不做具體介紹了)。
好了就說到這裡了,有其他想知道的,可以點選這個喔。 → →php影片教學
最後推薦給大家一個PHP陣列的免費影片教學:PHP函數之array陣列函數影片講解,快來學習吧!
以上是PHP數組學習怎麼去除任意元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!