我有一个数组如下:
$players = array(
$player = array(
'name' => 'playername',
'speed' => '10',
'agility' => '10',
'influence' => '10'
)
etc
然后我根据速度,敏捷性和影响力的总和来计算$得分。
$score = $p['speed'] + $p['agility'] + $p['influence'];
如何循环访问我的数组,但是将结果从最高到最低的$得分排序?
PS-> http://pastebin.com/eUEQ5y4u
答案 0 :(得分:4)
您可以使用usort
函数按自定义算法对其进行排序:
function score($player) {
return $player['speed'] + $player['agility'] + $player['influence'];
}
function cmp($a, $b) {
$scoreA = score($a);
$scoreB = score($b);
if($scoreA == $scoreB) {
return 0;
}
return ($scoreA > $scoreB) ? -1 : 1;
}
usort($players, "cmp");