将数组键替换为升序数字


Replace Array Keys with Ascending Numbers

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

[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  

试过爆炸,但显然我一定做错了什么。任何帮助不胜感激!

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

$new_array = array_values($old_array);

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

$array = array_values($array);

使用此方法的数组如下:

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

将重新编号,如下所示:

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

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

sort($array);

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

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