将索引重置为基于1的数组

时间:2013-01-18 15:47:59

标签: php arrays

我有数据和密钥[1,2,4,5]的数组。

$ array = xxxx;

这是:

                       [array] => Array
                            (
                                [1] => Array
                                    (
                                        [test] => fdasdfs24
                                    )

                                [2] => Array
                                    (
                                        [test] => fdasdf23
                                    )

                                [4] => Array
                                    (
                                        [test] => fdasdf4
                                    )

                                [5] => Array
                                    (
                                        [test] => fdasdf34
                                    )

                            )

如何重置此数组和数组中的索引?我想收到:[1,2,3,4]

                       [array] => Array
                            (
                                [1] => Array
                                    (
                                        [test] => fdasdfs24
                                    )

                                [2] => Array
                                    (
                                        [test] => fdasdf23
                                    )

                                [3] => Array
                                    (
                                        [test] => fdasdf4
                                    )

                                [4] => Array
                                    (
                                        [test] => fdasdf34
                                    )

                            )

我该怎么做?也许是为了这个功能?我不想这样做 - 这只是一个例子。

4 个答案:

答案 0 :(得分:6)

当你的索引从1开始而不是0时,你需要使用range函数,并在array_combine的帮助下得到结果数组。

array_combine(range(1,4),  array_values($array));

为了使它更通用,你可以使用它,

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

答案 1 :(得分:5)

$new_array = array_values($old_array);

答案 2 :(得分:3)

只需在开头添加一个元素,重新键入然后将其关闭。

$array = array_values(array_unshift($array, 'blank'));
unset($array[0]);

我没有测试,但应该这样做。

答案 3 :(得分:2)

一种方法是:

$newArray = array();
foreach($oldArray as $val):
    $newArray[] = $val; //add the value to the new array
endforeach;