Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
内置PHP函数重置数组的索引?_Php_Arrays - Fatal编程技术网

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

内置PHP函数重置数组的索引?,php,arrays,Php,Arrays,例如: $arr = array(1 => 'Foo', 5 => 'Bar', 6 => 'Foobar'); /*... do some function so $arr now equals: array(0 => 'Foo', 1 => 'Bar', 2 => 'Foobar'); */ 使用数组\u值($arr)。这将返回所有值的常规数组(以数字索引) 据我所知,您可能已经检查了函数 但我可以想象自己编写一个简单的函数 resetarray

例如:

$arr = array(1 => 'Foo', 5 => 'Bar', 6 => 'Foobar');
/*... do some function so $arr now equals:
    array(0 => 'Foo', 1 => 'Bar', 2 => 'Foobar');
*/
使用
数组\u值($arr)
。这将返回所有值的常规数组(以数字索引)


据我所知,您可能已经检查了函数

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

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

return $newarray;
}
resetarray($oldarray)
{

对于(int$i=0;$i要添加到其他答案中,
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;
}

不客气。谢天谢地php和数百万数组函数。布莱恩,诅咒php和数百万数组函数。;)-1:不仅语法错误,逻辑也错误。更不用说正确的答案已经发布了。
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;
}