首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在PHP中对索引从1开始的数组进行重新索引?

如何在PHP中对索引从1开始的数组进行重新索引?
EN

Stack Overflow用户
提问于 2009-02-26 15:46:37
回答 20查看 230.6K关注 0票数 171

我有以下数组,我想对它重新编制索引,这样键就会颠倒过来(理想情况下从1开始):

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

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] => 
    )

)
EN

回答 20

Stack Overflow用户

回答已采纳

发布于 2009-02-26 16:07:51

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

$iZero = array_values($arr);

如果您需要从1开始,则使用以下命令:

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

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

票数 480
EN

Stack Overflow用户

发布于 2011-06-28 21:58:16

这里的最好的方式

# 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的条目。)

票数 58
EN

Stack Overflow用户

发布于 2013-12-05 03:45:28

我刚发现你还可以做一个

array_splice($ar, 0, 0);

这会就地进行重新索引,这样您就不会得到原始数组的副本。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/591094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档