取消设置操作后将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开始[重复]的主要内容,如果未能解决你的问题,请参考以下文章