在 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
我正在使用 usort 对其进行排序,它变成了这样:
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
我的 usort 函数是这样的:
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
;您正在使用 uasort
。 uasort
保留密钥,usort
将生成新密钥。
我有一个像这样的二维数组:
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
我正在使用 usort 对其进行排序,它变成了这样:
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
我的 usort 函数是这样的:
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
;您正在使用 uasort
。 uasort
保留密钥,usort
将生成新密钥。