如何在PHP中重新索引数组,但索引从1开始?

2022-08-30 06:34:53

我有以下数组,我想重新索引,以便将键反转(理想情况下从1开始):

当前数组(编辑:数组实际上看起来像这样):

Array (

[2] => Object
    (
        [title] => Section
        [linked] => 1
    )

[1] => Object
    (
        [title] => Sub-Section
        [linked] => 1
    )

[0] => Object
    (
        [title] => Sub-Sub-Section
        [linked] => 
    )

)

它应该如何:

Array (

[1] => Object
    (
        [title] => Section
        [linked] => 1
    )

[2] => Object
    (
        [title] => Sub-Section
        [linked] => 1
    )

[3] => Object
    (
        [title] => Sub-Sub-Section
        [linked] => 
    )

)

答案 1

如果要重新索引从零开始,只需执行以下操作:

$iZero = array_values($arr);

如果您需要它从一个开始,请使用以下命令:

$iOne = array_combine(range(1, count($arr)), array_values($arr));

以下是所用函数的手册页:


答案 2

为什么要重新编制索引?只需将 1 添加到索引中:

foreach ($array as $key => $val) {
    echo $key + 1, '<br>';
}

编辑澄清问题后:可以使用 来重置从 0 开始的索引。然后,如果您只想从1开始打印元素,则可以使用上面的算法。array_values