重置数组索引的内置PHP函数是什么?

6

例子:

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

15
使用array_values($arr)。这将返回一个包含所有值(按数字索引)的普通数组。 array_values PHP文档

不用谢。感谢 PHP 和数百万的数组函数。 - Brian Ramsay
Brian,诅咒PHP和数百万个数组函数。 ;) - eyelidlessness

4
array_values($arr);

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;
}

-1

我不知道有没有,你可能已经在这里检查过函数here

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

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

return $newarray;
}

我对语法有点不太确定,但我想你应该明白我的意思。


-1:语法不对,逻辑也错了。更不用说正确答案已经发布了。 - eyelidlessness

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接