内置PHP函数来重置数组的索引?

时间:2009-07-28 19:09:29

标签: php arrays

示例:

$arr = array(1 => 'Foo', 5 => 'Bar', 6 => 'Foobar');
/*... do some function so $arr now equals:
    array(0 => 'Foo', 1 => 'Bar', 2 => 'Foobar');
*/

4 个答案:

答案 0 :(得分:14)

使用array_values($arr)。这将返回所有值的常规数组(以数字方式索引)。

PHP docs for array_values

答案 1 :(得分:4)

array_values($arr);

答案 2 :(得分:1)

要添加其他答案,array_values()将不会保留字符串键。如果你的数组混合了字符串键和数字键(这可能表明设计不好,但可能会发生),你可以使用如下函数:

function reset_numeric_keys($array = array(), $recurse = false) {
    $returnArray = array();
    foreach($array as $key => $value) {
        if($recurse && is_array($value)) {
            $value = reset_numeric_keys($value, true);
        }
        if(gettype($key) == 'integer') {
            $returnArray[] = $value;
        } else {
            $returnArray[$key] = $value;
        }
    }

    return $returnArray;
}

答案 3 :(得分:-1)

我不知道,您可能已经检查过函数here

但我可以想象自己编写一个简单的函数

resetarray($oldarray)
{
for(int $i=0;$i<$oldarray.count;$i++)
     $newarray.push(i,$oldarray[i])

return $newarray;
}

我对语法不太兴趣,但我想你明白了。