显示一定数量的数组唯一值

时间:2012-11-14 08:33:05

标签: php arrays

我有一个像:

这样的数组
$names = array(
    "Skyler",
    "Jesse",
    "Walter",
    "Skyler",
    "Hank",
    "Marie",
    "Walter",
    "Walter",
    "Jesse",
    );

要检查数组中相等值的频率, 我用array_count_values计算它们。 要按每个值的频率对列表进行排序,请使用arsort

$count = array_count_values($names);

foreach ($count as $key => $value) {
    echo $value . ' – ' . $key . '<br />';
}

所以我明白了:

3 – Walter
2 – Skyler
2 – Jesse
1 – Hank
1 – Marie

现在我只想显示频率最高的3个值,所以Walter,Jesse和Skyler。但我不知道如何...感谢您的帮助!

3 个答案:

答案 0 :(得分:8)

尝试

$count = array_count_values($names);
arsort($count, SORT_NUMERIC);
$result = array_slice($count, 0, 3);
print_r($result);

答案 1 :(得分:4)

您可能需要查看array_slice()

$highest = array_slice($count, 0, 3);

这将返回该数组的前三个元素。可以在 here

找到文档

答案 2 :(得分:2)

试试这个

$i = 0;
foreach ($count as $key => $value) {
    if($i == 3){
        break;
    }
    echo $value . ' – ' . $key . '<br />';
    $i++;
}