我有一个自动生成的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
答案 0 :(得分:5)
将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"
}
(最后三项交换,但我认为这无关紧要)
答案 1 :(得分:2)
function array_count_values返回数组中每个项的出现次数。然后asort排序
$occurences=array_count_values($array)
asort($occurences);