7

我有一个看起来像这样的数组:

[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  

我试过爆炸,但显然我做错了什么。任何帮助表示赞赏!

4

3 回答 3

30

这将在保留元素顺序的同时重新编号键。

$new_array = array_values($old_array);
于 2012-05-05T17:40:30.610 回答
8

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

$array = array_values($array);

使用此方法创建一个数组,例如:

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

将重新编号为:

Array('0'=>'123',
      '1'=>'456',
      '2'=>'789')
于 2012-05-05T17:40:43.790 回答
2

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

sort($array);

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

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

于 2012-05-05T17:39:15.547 回答