PHP如何重新索引含负整数键的数组并重置连续数字键?
更简便的实现方案
你可以通过按键排序+重新索引的组合,用两个PHP内置函数就能完成需求,比手动循环更简洁:
// 先复制原数组避免修改原数据(可选,若不需要保留原数组可直接操作$arr) $new = $arr; // 按键的升序排序数组,此时-1会排在0前面 ksort($new); // 提取值并重新建立从0开始的连续索引 $new = array_values($new);
效果验证
原数组:
$arr = []; $arr[0] = 'second'; $arr[-1] = 'first';
执行上述代码后,$new的结构就是:
Array ( [0] => first [1] => second )
原理说明
ksort()会按照数组键的数值升序排列元素,让原数组中键为-1的first排在键为0的second前面;array_values()会忽略原数组的键,提取所有值并重新生成从0开始的连续数字索引,正好符合你想要的结构。
内容的提问来源于stack exchange,提问作者Codemonkey
相关产品推荐
相关产品推荐

