-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 に答える