刪除數組方法在php中可以使用unset函數或直接把指定索引設置為空這樣也可以刪除了,但是使用這兩種方法之后數組元素索引就就空了,那么要如何解決這個問題.
如果要在某個數組中刪除一個元素,可以直接用的unset,但今天看到的東西卻讓我大吃一驚.
- <?php
- $arr = array('a','b','c','d');
- unset($arr[1]);
- print_r($arr);
- ?>
- print_r($arr)
之后,結果卻不是那樣的,最終結果是 Array([0] => a [2] => c [3] => d)
那么怎么才能做到缺少的元素會被填補并且數組會被重新索引呢?答案是:
- array_splice():
- <?php
- $arr = array('a','b','c','d');
- array_splice($arr,1,1);
- print_r($arr);
- ?>
print_r($arr)之后,結果是Array([0] => a [1] => c [2] => d)
刪除數組指定元素
array_search()比較實用,array_search() 函數與 in_array() 一樣,在數組中查找一個鍵值,如果找到了該值,匹配元素的鍵名會被返回,如果沒找到,則返回 false.
- $array = array('1', '2', '3', '4', '5');
- $del_value = 3;
- unset($array[array_search($del_value , $array)]);//利用unset刪除這個元素
- print_r($array); //開源軟件:Vevb.com
- //輸出
- array('1', '2', '4', '5');
但這種如果要重新索引數組就需要利用foreach遍歷刪除的數組之后重新建立一個數組這樣也是可以的.
新聞熱點
疑難解答