-1

我有一个数组如下:

$players = array(
    $player = array(
        'name'          => 'playername',
        'speed'         => '10',
        'agility'       => '10',
        'influence'     => '10'
    )
    etc

然后我根据速度、敏捷性和影响力的总和计算一个 $score。

$score = $p['speed'] + $p['agility'] + $p['influence'];

如何遍历我的数组,但将结果从最高到最低 $score 排序?

PS-> http://pastebin.com/eUEQ5y4u

4

1 回答 1

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");
于 2012-09-03T15:26:42.227 回答