我有一个如下所示的数组:
$array = Array(1, 1, 2, 2, 2, 2, 3, 4, 4, 4, 5, 5, 5, 5 ,5, 5, 6, 7, 8);
我知道我可以通过类似的程序轻松找到此数组中重复次数最多的值:
$array = Array(1, 2, 2, 2, 3, 3);
$counts = array_count_values($array);
arsort($counts);
echo key($counts);
但是如何才能找到第二最重复的值?还是第三次?还是第四以及以后?
答案 0 :(得分:1)
简而言之,您的问题归结为:如何从数组中获取第n个键?
像这样:
echo array_keys($counts)[1];
对于不支持此语法的古老PHP版本:
$keys = array_keys($counts);
echo $keys[1];
答案 1 :(得分:0)
通过排序和显示整个数组,您可以按顺序获取它们:
$array = Array(1, 2, 2, 2, 3, 3);
$counts = array_count_values($array);
arsort($counts);
echo '<pre>';
print_r($counts);
返回:
Array
(
[2] => 3
[3] => 2
[1] => 1
)
数组中的每个后续元素都会将值作为键,按其在数组中的外观的降序排列。