排序2d数组在PHP覆盖索引


Sorting 2d array in PHP overwriting index

我有一个像这样的二维数组:

array (size=3)
  0 => 
      array (size=2)
        'player_id' => string '26' (length=2)
        'score' => float 4.702030124427
  1 => 
      array (size=2)
        'player_id' => string '27' (length=2)
        'score' => float 17.891873624039
  2 => 
      array (size=2)
        'player_id' => string '29' (length=2)
        'score' => float 17.883449353824

我用ussort对它进行排序,它变成了这样:

array (size=3)
   1 => 
     array (size=2)
              'player_id' => string '27' (length=2)
              'score' => float 17.891873624039
   2 => 
     array (size=2)
              'player_id' => string '29' (length=2)
              'score' => float 17.883449353824
   0 => 
     array (size=2)
             'player_id' => string '26' (length=2)
             'score' => float 4.702030124427

我的排序函数是这样的:

  uasort($scoreList,function($a, $b) {
                            if($a['score']==$b['score']) return 0;
                                return $a['score'] < $b['score']?1:-1;
                        });

有没有办法重写索引让排序后的列表变成0,1,2而不是1,2,0?

您没有使用usort;你用的是uasortuasort保留密钥,usort生成新密钥。

http://php.net/manual/en/function.usort.php