我有一个自动生成的 PHP 数组,看起来像:
[1] => item
[2] => bar
[3] => plusgallery
[4] => size
[5] => dynamic
[6] => size
[7] => dynamic
[8] => size
[9] => size
(它实际上由大约 3000 个项目组成,这只是一个块)
我在上面使用了 array_count_values() ,它生成了一个数组,例如:
[item] => 1
[bar] => 1
[plusgallery] => 1
[size] => 4
[dynamic] => 2
如何让它根据键的值(从高到低)排序到另一个数组中?我希望它看起来像这样:
[1] => size
[2] => dynamic
[3] => item
[4] => bar
[5] => plusgallery
将
arsort
与 array_keys
结合使用:
$countedArray = array_count_values($array);
arsort( $countedArray )
array_keys( $countedArray );
结果是:
array(5) {
[0]=>
string(4) "size"
[1]=>
string(7) "dynamic"
[2]=>
string(11) "plusgallery"
[3]=>
string(3) "bar"
[4]=>
string(4) "item"
}
(最后三项被交换,但我认为这不重要)
函数 array_count_values 返回数组中每个项目出现次数的数组。然后排序
$occurences=array_count_values($array)
asort($occurences);