我想按最受欢迎(最常见)排列数组,然后只有一个实例。
For Instance,
Array ( [0] => cat [1] => dog [2] => bird [3] => dog [4] => dog [5] => cat [6] => turtle )
将是:
Array ( [0] => dog [1] => cat [2] => bird [3] => turtle )
这样做的最佳方式是什么?
答案 0 :(得分:1)
结合array_count_values和arsort功能。像这样:
$a = array('cat', 'dog', 'bird', 'dog', 'dog', 'cat', 'turtle');
$a = array_count_values($a); // creating a 'name' => 'occurrence count' array
arsort($a); // sorting them reverse order and maintaining keys
$ordered_animals = array_keys($a); // getting the keys in a separate array
答案 1 :(得分:0)
我会选择这样的东西:
$reversed = array();
foreach($unsorted as $key => $val){
if(!isset($reversed[$val])) $reversed[$val] = 0;
$reversed[$val]++;
}
$sorted = array_keys(asort($reversed));
答案 2 :(得分:0)
$items = array( 'cat', 'dog', 'cat', 'hello', 'world', 'dog', 'hello', 'ok' ); // etc
$valueCount = array_count_values( $items );
arsort( $valueCount );
$keys = array_keys( $valueCount );