删除 PHP 数组某个元素后,如何重置数组索引从 0 开始?

7

我有一个数组

$cars = array("Volvo", "BMW", "Toyota", "Mercedes");

我想删除第一个元素“Volvo”,我使用了以下代码:
unset($cars[0]);

现在我有一个像这样的数组:
Array
(   
    [1] Bmw
    [2] Toyota
    [3] Mercedes
)

但我希望我的数组重新从零开始,像这样:
Array
(
    [0] Bmw
    [1] Toyota
    [2] Mercedes
)

怎样做呢?

3个回答

18

在删除操作后,使用 array_values 函数来重置数组。

请注意,这种方法将适用于所有情况,包括从数组中删除任何索引键(开头/中间/结尾)的情况。

array_values() 返回数组中的所有值,并按数字顺序对该数组进行索引。

试一下 (Rextester DEMO):

$cars = array("Volvo", "BMW", "Toyota", "Mercedes");
unset($cars[0]);
$cars = array_values($cars);
var_dump($cars); // check and display the array

2

使用array_slice()代替选择数组的特定部分

$newCars = array_slice($cars, 1)

请在演示中查看结果。


0
假设您总是想从数组中删除第一个元素,array_shift 函数返回第一个元素并重新为其余数组建立索引。
$cars = array("Volvo", "BMW", "Toyota", "Mercedes");
$first_car = array_shift($cars);
var_dump($first_car);
// string(5) "Volvo"
var_dump($cars)
// array(3) {
//  [0] =>
//  string(3) "BMW"
//  [1] =>
//  string(6) "Toyota"
//  [2] =>
//  string(8) "Mercedes"
//}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接