If you want to delete an element in an array, you can directly use unset, but what I saw today surprised me
$arr = array('a','b','c','d');
unset($arr[1]);
print_r($arr);
?>
print_r($arr)
After that, the result is not like that. The final result is Array ( [0] => a [2] => c [3] => d )
So how can the missing elements be filled and the array re-indexed? The answer is
array_splice():
$arr = array('a','b','c','d');
array_splice($arr,1,1);
print_r($arr);
?>
After print_r($arr), the result is Array ( [0] => a [1] => c [2] => d )
Delete the specified element from the array
array_search() is more practical
The array_search() function is the same as in_array(), searching for a key value in the array. If the value is found, the key of the matching element is returned. If not found, return false
$array = array('1', '2', '3', '4', '5');
$del_value = 3;
unset($array[array_search($del_value, $array)]);//Use unset to delete this element
print_r($array);
Output
array('1', '2', '4', '5');
But if you want to re-index the array, you need to use foreach to traverse the deleted array and then re-create an array. This is also possible.