php数组中删除元素之重新索引的三种方法
如果要在某个数组中删除一个元素,可以直接用的unset。
1 2 3 4 5 6 | < ?php $arr = array('a','b','c','d'); unset($arr[1]); echo $array[1]; // error Undefined offset print_r($arr); ?> |
print_r($arr)最终结果是 Array ( [0] => a [2] => c [3] => d )
那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?
有三种方法。
第一种方法:array_values
array_values() 函数返回一个包含给定数组中所有键值的数组,但不保留键名。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | < ?php $arr = array('a','b','c','d'); unset($arr[1]); $arr = array_values($arr); print_r($arr); // 输出如下 /** Array ( [0] => a [1] => c [2] => d ) ?> |
二、第二种方法:array_splice()
array_splice() 函数从数组中移除选定的元素,并用新元素取代它。该函数也将返回包含被移除元素的数组。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | < ?php $arr = array('a','b','c','d'); unset($arr[1]); array_splice($arr,0,0); print_r($arr); // 输出如下 /** Array ( [0] => a [1] => c [2] => d ) ?> |
三、第三种方法:不使用unset
使用array_splice()的功能
1 2 3 4 5 | < ?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 )
CodeIgniter修改分页的样式和内容 PHP中var_dump展示不全出现省略号的解决办法