2017-02-24 11 views
0

私が持っているこのような配列:ソート - 配列(キー=>配列(a、b)は

$array = array($team => array('points' => x, 'runs' => y)) 

そして、私はポイントを集計し、同じチームで実行され、結果はこのような何か:

[team1] => Array 
    (
     [points] => 12 
     [runs] => 1 
    ) 

[team2] => Array 
    (
     [points] => 11 
     [runs] => 3 
    ) 

[team3] => Array 
    (
     [points] => 11 
     [runs] => 2 
    ) 

[team4] => Array 
    (
     [points] => 8 
     [runs] => 3 
    ) 

そして、私は実行のDESCでとポイントASCことによってそれをソートしたい ようなものにする:。

[team4] => Array 
    (
     [points] => 8 
     [runs] => 3 
    ) 
[team2] => Array 
    (
     [points] => 11 
     [runs] => 3 
    ) 
[team3] => Array 
    (
     [points] => 11 
     [runs] => 2 
    ) 
[team1] => Array 
    (
     [points] => 12 
     [runs] => 1 
    ) 

答えて

0

あなた可能性がありuがSE uasort(そのままキーを保つために、あなたがそうでなければusortを使用することができます)カスタムと機能を比較:

uasort($teamArray, function($first, $second) { 
    // first preference to points 
    if ($first['points'] < $second['points']) return -1; 
    if ($first['points'] > $second['points']) return 1; 

    // points are equal, compare runs in descending order 
    if ($first['runs'] > $second['runs']) return -1; 
    if ($first['runs'] < $second['runs']) return 1; 

    // both points and runs are equal 
    return 0; 
}); 

print_r($teamArray); 
+0

私はusortをしようとしていたが、私はそれはそれは働いている:)方法を取ることが知らなかった:) –