假设我有一个这样的数组:
$array = array('a', 'b', 'c', 'c', 'c', 'd', 'a', 'b', 'b', 'b', 'b');
我想要做的是返回一个按所包含术语的频率重新排序的数组。所以,像这样:
['b', 'c', 'a', 'd']
由于b
出现了5次,c
出现了三次,a
出现了两次,d
只出现一次。怎么做?
答案 0 :(得分:7)
$counts = array_count_values($array);
arsort($counts);
$list = array_keys($counts);
var_dump($list);
答案 1 :(得分:2)
这应该有帮助
http://www.php.net/manual/en/function.array-count-values.php
直接从手册页
描述
array array_count_values(array $ input)array_count_values()返回 使用输入值的数组 数组作为键及其频率 输入为值。
然后根据值
重新排序