阵列中的排名

时间:2013-06-04 08:22:17

标签: php arrays sorting ranking

我有一个数组 $ data ,如下所示

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

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

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

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

我正在寻找基于得分最高得分为Rank 1

的数组排名

输出:

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

有关如何实现这一目标的任何建议吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

要对数组进行排序,您必须使用 asort($ array)函数。