通过计算数组中值的值来命令foreach

时间:2012-09-03 15:22:13

标签: php

我有一个数组如下:

$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

1 个答案:

答案 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");