0

以下のような配列$dataがあります

[data] => Array
        (
            [user1] => Array
                (
                    [score] => 10
                )

            [user2] => Array
                (
                    [score] => 15
                )

            [user3] => Array
                (
                    [score] => 12
                )

            [user4] => Array
                (
                    [score] => 1
                )
)

ランク 1 として最大スコアを持つスコアに基づく配列のランキングを探しています

出力:

user2 -> 1
user3 -> 2
user1 -> 3
user4 -> 4

これを達成する方法について何か提案はありますか?

4

2 に答える 2

2

array_multisortこれを達成するには、関数を降順オプションで使用できます

$array = array('data' => array('user1' => array('score' => 10 ),
                                'user2' => array('score' => 15),
                                'user3' => array('score' => 12),
                                'user4' => array('score' => 1),
                              )
                );

array_multisort($array['data'], SORT_DESC);
var_dump($array);   

これにより、配列が次のように注文されます

array (size=1)
  'data' => 
    array (size=4)
      'user2' => 
        array (size=1)
          'score' => int 15
      'user3' => 
        array (size=1)
          'score' => int 12
      'user1' => 
        array (size=1)
          'score' => int 10
      'user4' => 
        array (size=1)
          'score' => int 1
于 2013-06-04T08:31:03.373 に答える