【问题标题】:Ranking within Arrays [duplicate]在数组中排名[重复]
【发布时间】:2013-05-30 13:28:29
【问题描述】:

我有一个数组 $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

有什么建议可以实现吗?

【问题讨论】:

标签: php arrays sorting ranking


【解决方案1】:

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

【讨论】:

    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-10
      • 2023-01-19
      • 2012-10-20
      • 2019-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-27
      相关资源
      最近更新 更多