【问题标题】:How to rank an array by frequency of terms?如何按术语的频率对数组进行排名?
【发布时间】:2011-04-21 21:32:33
【问题描述】:

假设我有一个这样的数组:

$array = array('a', 'b', 'c', 'c', 'c', 'd', 'a', 'b', 'b', 'b', 'b');

我想要做的是返回一个按包含术语的频率重新排序的数组。所以,像这样:

['b', 'c', 'a', 'd']

因为b出现了5次,c出现了三次,a出现了两次,d只出现了一次。这将如何完成?

【问题讨论】:

    标签: php arrays sorting repeat


    【解决方案1】:
    $counts = array_count_values($array);
    arsort($counts);
    $list = array_keys($counts);
    var_dump($list);
    

    【讨论】:

      【解决方案2】:

      这应该会有所帮助

      http://www.php.net/manual/en/function.array-count-values.php

      直接来自手册页

      说明

      array array_count_values ( 数组 $input ) array_count_values() 返回 使用输入值的数组 数组作为键及其频率 作为值输入。

      然后根据值重新排序

      【讨论】:

        猜你喜欢
        • 2019-01-15
        • 2021-07-28
        • 2020-10-19
        • 2021-12-03
        • 1970-01-01
        • 1970-01-01
        • 2015-10-18
        • 1970-01-01
        相关资源
        最近更新 更多