doulin1867 2016-01-14 07:45
浏览 76
已采纳

php如何按频率顺序对多个数组中的值进行排序

I have an array containing multiple arrays like

$A = array();
$A[0] = array("1","2","3","4","5");
$A[1] = array("1","6","7","8");
$A[2] = array("0","1","3");

I want to sort the values in multiple arrays in the order of frequency and put them into another array let's say $B.

The values in $B is "1","1","1","3","3","0","2","4","5","6","7","8".

  • 写回答

5条回答 默认 最新

  • dongqiyou0303 2016-01-14 08:21
    关注

    $A = array();
    $A[0] = array("1","2","3","4","5");
    $A[1] = array("1","6","7","8");
    $A[2] = array("0","1","3");
    
    //Merging above array in to one array
    $merged = array_values(call_user_func_array('array_merge', $A));
    //Getting occurrence count
    $counts = array_count_values($merged);
    //Sort by count
    arsort($counts);
    
    //Adding to required array
    $B = array();
    foreach ($counts as $k => $v)
        for($i=1;$i<=$v;$i++)
            $B[] = $k;
    
    echo "<pre>";
    print_r($B);
    echo "</pre>";

    Result

    Array
    (
        [0] => 1
        [1] => 1
        [2] => 1
        [3] => 3
        [4] => 3
        [5] => 0
        [6] => 8
        [7] => 7
        [8] => 5
        [9] => 2
        [10] => 4
        [11] => 6
    )
    
    </div>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染