代码之家  ›  专栏  ›  技术社区  ›  James Skidmore

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

  •  5
  • James Skidmore  · 技术社区  · 16 年前

    $arr = array(1 => 'Foo', 5 => 'Bar', 6 => 'Foobar');
    /*... do some function so $arr now equals:
        array(0 => 'Foo', 1 => 'Bar', 2 => 'Foobar');
    */
    
    4 回复  |  直到 16 年前
        1
  •  15
  •   Brian Ramsay    16 年前

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

    PHP docs for array_values

        2
  •  4
  •   skrebbel    16 年前
    array_values($arr);
    
        3
  •  1
  •   eyelidlessness    16 年前

    要补充其他答案, 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;
    }
    
        4
  •  -1
  •   satyajit    16 年前

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

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

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

    推荐文章