在 unset 操作后重置 PHP 数组索引从 0 开始

Reset PHP array index to start from 0 after unset operation

我有一个数组

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

我想删除第一个元素 "Volvo" 我用这个

unset($cars[0]);

现在我有一个这样的数组:

Array
(   
    [1] Bmw
    [2] Toyota
    [3] Mercedes
)

但我希望我的数组再次从零开始,就像这样:

Array
(
    [0] Bmw
    [1] Toyota
    [2] Mercedes
)

怎么做?

使用array_values函数重置数组,在unset操作后。

请注意,此方法适用于所有情况,包括取消设置数组中的任何索引键(开头/中间/ 结束).

array_values() returns all the values from the array and indexes the array numerically.

尝试 (Rextester DEMO):

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

使用array_slice()代替select数组的特殊部分

$newCars = array_slice($cars, 1)

检查结果 demo

假设您总是想从数组中删除第一个元素,array_shift 函数 returns 第一个元素并重新索引数组的其余部分。

$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"
//}