【发布时间】: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只出现了一次。这将如何完成?
【问题讨论】:
假设我有一个这样的数组:
$array = array('a', 'b', 'c', 'c', 'c', 'd', 'a', 'b', 'b', 'b', 'b');
我想要做的是返回一个按包含术语的频率重新排序的数组。所以,像这样:
['b', 'c', 'a', 'd']
因为b出现了5次,c出现了三次,a出现了两次,d只出现了一次。这将如何完成?
【问题讨论】:
$counts = array_count_values($array);
arsort($counts);
$list = array_keys($counts);
var_dump($list);
【讨论】:
这应该会有所帮助
http://www.php.net/manual/en/function.array-count-values.php
直接来自手册页
说明
array array_count_values ( 数组 $input ) array_count_values() 返回 使用输入值的数组 数组作为键及其频率 作为值输入。
然后根据值重新排序
【讨论】: