php数组中删除元素
之前如果要在某个数组中删除一个元素,我是直接用的unset,也不管unset之后会发生什么。但今天看到的东西却让我大吃一惊
<?php $arr = array('aaaa','bbbb','cccc','dddd'); unset($arr[1]); print_r($arr); ?>
print_r($arr)之后,结果却不是那样的,最终结果是 Array ( [0] => a [2] => c [3] => d )
那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?答案是array_splice():
<?php $arr = array('aaaa','bbbb','cccc','dddd'); array_splice($arr,1,1); print_r($arr); ?>
ps: array_splice第一个是原数组,第二个参数删除第几个键(从0开始),第三个参数是删除几个
print_r($arr)之后,结果是Array ( [0] => a [1] => c [2] => d )
实际应用
$arr = array('aaaa','bbbb','cccc','dddd'); unset($arr[1]); sort($arr); echo json_encode($arr); 或者 $arr = array('aaaa','bbbb','cccc','dddd'); array_splice($arr,1,1); echo json_encode($arr);
或者
$arr = array('aaaa','bbbb','cccc','dddd');
unset($arr[1]);
array_values($arr);
echo json_encode($arr);