如何按术语频率对数组进行排名?

alt*_*ier 1 php arrays sorting repeat

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

$array = array('a', 'b', 'c', 'c', 'c', 'd', 'a', 'b', 'b', 'b', 'b');
Run Code Online (Sandbox Code Playgroud)

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

['b', 'c', 'a', 'd']
Run Code Online (Sandbox Code Playgroud)

因为b出现了5次,c出现了三次,a出现了两次,并且d只出现过一次.怎么做?

Wri*_*ken 7

$counts = array_count_values($array);
arsort($counts);
$list = array_keys($counts);
var_dump($list);
Run Code Online (Sandbox Code Playgroud)