dongye9228 2016-07-14 23:57
浏览 65
已采纳

如何根据重复值排序php数组

I need to sort an array by quantity of duplicate values.

Here's an example:

$arr = array(
    1=> 'Love is true',
    2=> 'Love is true',
    3=> 'Hello Word',
    4=> 'Hello Word',
    5=> 'Hope',
    6=> 'Hope',
    7=> 'Love is true',
    8=> 'Hello Word',
    9=> 'Hello Word',
    10=>'Hope',
    11=>'Hello Word',
    12=>'Hope',
    13=>'Hello Word',
    14=>'Hello Word',
    15=>'Hello Word');
print_r($arr);

In this array, we can see that

Love is true > duplicate > 3x
Hello Word   > duplicate > 8x
Hope         > duplicate > 4x

I'd like the sorting to put the values that repeat the most first:

Hello Word position 1# In array (repeats 8 times)
Hope                2# In array (repeats 4 times)
Love is true        3# In array (repeats 3 times)

So it returns this array:

Array
(
    [0] => Hello Word
    [1] => Hope 
    [2] =  Love is true
)
  • 写回答

1条回答 默认 最新

  • douzhuan1169 2016-07-15 00:18
    关注

    You can do it like this:

    $count = array_count_values($arr); // count each repetition
    arsort($count); // sort the values
    $array = array_keys($count); // get the expected array
    print_r($array);
    

    That will output:

    Array
    (
        [0] => Hello Word
        [1] => Hope
        [2] => Love is true
    )
    

    See it in action here.


    You can get some references for the functions used in this answer below:

    • array_count_values: Counts all the values of an array;
    • asort: Sort an array and maintain index association;
    • array_keys: Return all the keys or a subset of the keys of an array.


    You can var_dump each step of the process to see what's going on.
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算