我有以下数组,我想对它重新编制索引,这样键就会颠倒过来(理想情况下从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] =>
)
)
发布于 2009-02-26 16:07:51
如果要从零开始重新编制索引,只需执行以下操作:
$iZero = array_values($arr);
如果您需要从1开始,则使用以下命令:
$iOne = array_combine(range(1, count($arr)), array_values($arr));
以下是所用函数的手册页:
发布于 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的条目。)
发布于 2013-12-05 03:45:28
我刚发现你还可以做一个
array_splice($ar, 0, 0);
这会就地进行重新索引,这样您就不会得到原始数组的副本。
https://stackoverflow.com/questions/591094
复制相似问题