如果我有这个数组:
<?php
$array[0]='foo';
$array[1]='bar';
$array[2]='foo2';
$array[3]='bar3';
?>
我想删除第二个条目($array[1]
),但是所有剩余条目的索引都会自动调整,因此接下来的索引为2和3的2个元素将变为1和2。 / p>
如何做到这一点,或者是否有内置函数?
答案 0 :(得分:6)
有几种方法可以做到这一点。一种是在删除项目后使用array_values
来获取值:
unset($array[1]);
$array = array_values($array);
var_dump($array);
另一种方法是使用array_splice
:
array_splice($array, 1, 1);
var_dump($array);
答案 1 :(得分:2)
您可以使用array_splice()
。请注意,这会修改传递的数组,而不是返回更改的副本。例如:
$array[0] = 'foo';
//etc.
array_splice($array, 1, 1);
print_r($array);
答案 2 :(得分:1)
我总是将array_merge与单个数组一起使用
$array = array_merge($array);
print_r($array);
来自php.net的: http://us.php.net/array_merge 如果只给出一个数组并且数组被数字化索引,那么键将以连续的方式重新编制索引。