PHP对齐数组键值

时间:2010-12-25 15:51:51

标签: php arrays sorting key

我用谷歌搜索了两天,并尝试查看PHP手册,我仍然记不起那个对齐PHP数组键值的函数。

所有我正在寻找的功能是:

Array
(
    [0] => 1
    [3] => 2
    [4] => 3
    [7] => 4
    [9] => 5
)

并将其转换为:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

基本上,数组首先按键排序(它们附加的值与它们保持一致),然后所有键都连续设置为所有计数数字,而不跳过任何数字(0,1,2,3, 4,5,6,7,8,9 ......)。几个月前我看到它与ksort()一起使用,并且看不到记住或找到这个难以捉摸的功能。

3 个答案:

答案 0 :(得分:3)

嗯,你知道,这个很难,因为PHP数组函数页面上的一般描述并没有说这个函数能够满足您的需求。

但您可以使用ksort()对数组进行排序,然后使用:array_values()。从PHP手册的页面:

  

array_values()返回输入数组中的所有值,并以数字形式索引数组。

答案 1 :(得分:1)

您可以使用array_merge

$array = array_merge($array);

它将使用数字键重新索引值。

更新:使用@LostInTheCode's answer中提议的array_values可能更具描述性。

答案 2 :(得分:0)

function array_reset_index_keys($array)
{
    $return = array();foreach($array as $k => $v){$return[] = $v;}return $return;
}

然后像普通函数一样使用,应该重新索引数组

您还可以使用array_values之类的本机函数,它将数组的值返回到单维数组中,从而使其重新编入索引。