用升序数替换数组键

时间:2012-05-05 17:37:51

标签: php arrays key element

我有一个如下所示的数组:

[867324]  
    [id] => 867324  
    [name] => Example1  

[345786]    
    [id] => 345786
    [name] => Example2

[268531]  
    [id] => 268531
    [name] => Example3 

正如您所看到的,第一个元素没有任何特定的顺序。出于示例的目的,您可以将它们视为随机数。我想最终得出的最终结果是:

[0]  
    [id] => 867324  
    [name] => Example1  

[1]    
    [id] => 345786
    [name] => Example2

[2]  
    [id] => 268531
    [name] => Example3  

我尝试过爆炸,但显然我一定是做错了。任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:28)

这会在保留元素顺序的同时对键进行重新编号。

$new_array = array_values($old_array);

答案 1 :(得分:8)

您可以使用array_values()重置数组密钥:

$array = array_values($array);

使用此方法的数组如:

Array('123'=>'123',
      '456'=>'456',
      '789'=>'789')

将重新编号为:

Array('0'=>'123',
      '1'=>'456',
      '2'=>'789')

答案 2 :(得分:2)

如果元素的顺序无关紧要,我相信PHP的排序方法不会维护索引。 http://www.php.net/manual/en/function.sort.php

sort($array);
  

注意:此函数为数组中的元素指定新键。它将删除可能已分配的任何现有密钥,而不仅仅是重新排序密钥。

更新: 这确实有效,尽管提到的array_values方法更有意义。