如何使用负整数键值重新索引数组,以便项目 0,1,2,3,-1 排序到 -1,0,1,2,3,然后重新编号为 0,1,2,3,4?
P粉198670603
P粉198670603 2023-09-12 12:09:51
0
2
647

假设我有这个:

$arr = [];
$arr[0] = 'second';
$arr[-1] = 'first';

如何将其更改为 $arr[0 => 'first', 1 => 'second']

这是我想到的最好的:

$new = [];
foreach ($arr as $key => $value) {
    $new[$key + 1] = $value;
}

ksort($new);

但与 php 中的数组一样,我想知道是否真的有一个我可以使用的简单内置函数?

P粉198670603
P粉198670603

全部回复(2)
P粉441076405

我忍不住想知道您的目标是否只是在数组的开头插入一个值,也许您正在寻找array_unshift()

所以而不是

$arr[-1] = 'first';

...然后排序,你可以这样做

array_unshift($arr, 'first');

这会在索引 0 处插入 'first' 并将数组中每个现有的、按数字索引的项目向上移动一个。

P粉107991030

使用 ksort 对数组进行排序,然后应用 array_values到它。它将重新索引从 0 开始的键:

$arr = [];
$arr[0] = 'second';
$arr[-1] = 'first';

ksort($arr);
$result = array_values($arr);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板