Home >Backend Development >PHP Tutorial >Re-indexing of deleted elements in php array, php array element index_PHP tutorial
If you want to delete an element in an array, you can use unset directly, but what I saw today Something 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 A(www.111cn.net)rray ( [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.
From php tutorial website: http://www.111cn.net/phper/php-cy/66372.htm
array_values() returns all the values in the input array and indexes them numerically.
array_value($arr['date']);
unset($arr[1]);