取消操作后,将PHP数组索引重置为从0开始

时间:2018-10-06 10:47:42

标签: php arrays unset

我有一个数组

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

我想删除第一个元素“沃尔沃”,并且使用此

unset($cars[0]);

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

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

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

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

如何做到?

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

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

var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var catalogRouter = require('./routes/catalog'); 

var app = express();

var mongoose = require('mongoose');
var mongoDB = 'mongodb://admin:bitracer33@ds123753.mlab.com:23753/alpha_bit_racer';
mongoose.connect(mongoDB);
mongoose.Promise = global.Promise;
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection error:'));


app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/catalog', catalogRouter);





module.exports = app;

demo中查看结果

答案 2 :(得分:1)

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