从PHP数组中删除并调整索引

时间:2009-09-23 13:01:16

标签: php

如果我有这个数组:

<?php

$array[0]='foo';
$array[1]='bar';
$array[2]='foo2';
$array[3]='bar3';

?>

我想删除第二个条目($array[1]),但是所有剩余条目的索引都会自动调整,因此接下来的索引为2和3的2个元素将变为1和2。 / p>

如何做到这一点,或者是否有内置函数?

3 个答案:

答案 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 如果只给出一个数组并且数组被数字化索引,那么键将以连续的方式重新编制索引。