不用系统函数怎么实现数组的索引重置?

删除数组中的第一个值,然后索引重置
比如:$arr = [1,2,3,4,5];
删除数组中的第一个数1,也就是unset($arr[0]);

$arr = [1,2,3,4,5];
unset($arr[0]);
var_dump($arr);
// 这时候索引是从1开始的
array(4) {
    [1]=>int(2)
    [2]=>int(3)
    [3]=>int(4)
    [4]=>int(5)
}

如何实现索引重置(从0开始)

array(4) {
    [0]=>int(2)
    [1]=>int(3)
    [2]=>int(4)
    [3]=>int(5)
}

除了foreach()和unset()之外不能使用其它系统函数,当然也不能重新声明一个变量将$arr的值遍历赋值给该新变量。
是个面试题,没答出来。。。

php
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2
ruke
        $arr = [1, 2, 3, 4, 5];
        unset($arr[0]);
        foreach ($arr as $key => $value) {
            unset($arr[$key]);
            $arr[$key - 1] = $value;
        }
5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!