PHP如何實現刪除數組元素和重新索引?
如果要在某個數組中刪除一個元素,可以直接用的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)之后,結果是A(www.111cn.net)rray ( [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);輸出array('1', '2', '4', '5');
但這種如果要重新索引數組就需要利用foreach遍歷刪除的數組之后重新建立一個數組這樣也是可以的。