【发布时间】:2018-07-12 06:20:34
【问题描述】:
我有一个名为“playersArray”的数组,如下所示:
Array (
[0] => Array ( [name] => Joe [holders] => 0 )
[1] => Array ( [name] => Bob [holders] => 100 )
[2] => Array ( [name] => Jake [holders] => 100 )
[3] => Array ( [name] => Mike [holders] => 100 )
[4] => Array ( [name] => Tim [holders] => -0.0145 )
[5] => Array ( [name] => Frank[holders] => 100 )
[6] => Array ( [name] => Scott [holders] => 0.0583 )
[7] => Array ( [name] => Doug[holders] => 0.1308 )
[8] => Array ( [name] => Tommy [holders] => 0.2516 )
[9] => Array ( [name] => Eric [holders] => 100 )
)
我有一个按“持有人”值对这个数组进行排序的函数:
function compareHolders($a, $b) {
$aPoints < $a['holders'];
$bPoints < $b['holders'];
return strcmp($aPoints, $bPoints);
}
我遍历另一个数组来创建这个数组:
foreach ($players as $player) {
$player['name'] = $athlete['name'];
$player['holders'] = $total_result_yesterday;
$playersArray[] = $player;
}
我正在尝试按“持有人”值对数组进行排序:
usort($playersArray, 'compareHolders');
print_r($playersArray);
最后,我试图在新排序的数组中获取 5 个最高和 5 个最低的“持有人”值:
$first_5_players = array_slice($playersArray, 0, 5, true);
$last_5_players = array_slice($playersArray, -5);
但是,排序工作不正常。到期的值未按需要按顺序显示。如何让排序正常工作?谢谢!
【问题讨论】:
标签: php arrays sorting multidimensional-array