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 回答
1

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

于 2013-06-04T08:45:20.053 回答