如何将数组中的所有键增加 1?

2022-08-30 11:48:08

将数组中的所有键增加 1 个的最简单解决方案是什么?

以前:

$arr[0] = 'a';
$arr[1] = 'b';
$arr[2] = 'c';

后:

$arr[1] = 'a';
$arr[2] = 'b';
$arr[3] = 'c';

答案 1

您可以使用

$start_zero = array_values($array); /* Re-Indexing Array To Start From Zero */

如果您想从索引1开始使用它,请使用

$start_one = array_combine(range(1, count($array)), array_values($array));

答案 2

好吧,有一种非常简单的方法可以做到这一点:

$arr = array('a', 'b', 'c');
array_unshift($arr, null);
unset($arr[0]);
print_r($arr);
/* 
Array
(
    [1] => a
    [2] => b
    [3] => c
)
*/

当然,只适用于简单的密集数组。

这是最不平凡的(但既是单行又适用于密集和稀疏数组)的方式:

$arr = array_flip(array_map(function($el){ return $el + 1; }, array_flip($arr)));