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

删除数组中的第一个值,然后索引重置
比如:$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
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《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年前 评论

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