猿问

如何在PHP中重新索引数组?

如何在PHP中重新索引数组?

我有以下数组,我想重新编制索引,这样键就反转了(最好从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] => 
    ))


阿晨1998
浏览 2393回答 3
3回答

开满天机

如果希望重新索引为零,只需执行以下操作:$iZero = array_values($arr);如果需要从一个地方开始,请使用以下方法:$iOne = array_combine(range(1, count($arr)), array_values($arr));以下是使用的函数的手册页:array_values()array_combine()range()

森林海

这里是最好的方法:# Array$array = array('tomato', '', 'apple', 'melon', 'cherry', '', '', 'banana');返回Array(     [0] => tomato    [1] =>      [2] => apple    [3] => melon    [4] => cherry    [5] =>      [6] =>      [7] => banana)通过这样做$array = array_values(array_filter($array));你明白了Array(     [0] => tomato    [1] => apple    [2] => melon    [3] => cherry    [4] => banana)解释array_values():返回输入数组和索引的数值。array_filter():使用用户定义的函数(Udf)过滤数组的元素。如果没有提供, 输入表中所有值为false的条目都将被删除。.)

慕运维8079593

为什么要重新编制索引?只需将1添加到索引中:foreach&nbsp;($array&nbsp;as&nbsp;$key&nbsp;=>&nbsp;$val)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$key&nbsp;+&nbsp;1,&nbsp;'<br>';}编辑在问题被澄清之后:您可以使用array_values若要从0开始重置索引,请执行以下操作。然后,如果只希望打印元素从1开始,则可以使用上面的算法。
随时随地看视频慕课网APP
我要回答