取消设置操作后将PHP数组索引重置为从0开始[重复]

Posted

技术标签:

【中文标题】取消设置操作后将PHP数组索引重置为从0开始[重复]【英文标题】:Reset PHP array index to start from 0 after unset operation [duplicate] 【发布时间】:2019-03-11 17:00:00 【问题描述】:

我有一个数组

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

我想删除第一个元素“Volvo”并使用它

unset($cars[0]);

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

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

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

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

怎么做?

【问题讨论】:

【参考方案1】:

在取消设置操作后,使用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

【讨论】:

@doki 乐于助人:)【参考方案2】:

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

$newCars = array_slice($cars, 1)

检查结果在demo

【讨论】:

【参考方案3】:

假设您总是想从数组中删除第一个元素,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"
//

【讨论】:

以上是关于取消设置操作后将PHP数组索引重置为从0开始[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将熊猫行索引重置为从 0 以外的数字开始?

PHP - 在foreach循环中取消设置数组元素[重复]

如何从 PHP 数组中取消设置数字索引元素?

php把索引数组的第一个元素移除后索引不重置

php 数组索引值如何重新从0开始递增

如何在php中取消设置数组元素匹配索引?