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

use*_*680 0 php arrays

我有一个像这样的数组:

$names = array(
    "Skyler",
    "Jesse",
    "Walter",
    "Skyler",
    "Hank",
    "Marie",
    "Walter",
    "Walter",
    "Jesse",
    );
Run Code Online (Sandbox Code Playgroud)

要检查数组中相等值的频率,我会将它们计算在内array_count_values.要按我使用的每个值的频率订购列表arsort:

$count = array_count_values($names);

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

所以我明白了:

3 – Walter
2 – Skyler
2 – Jesse
1 – Hank
1 – Marie
Run Code Online (Sandbox Code Playgroud)

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

air*_*r4x 8

尝试

$count = array_count_values($names);
arsort($count, SORT_NUMERIC);
$result = array_slice($count, 0, 3);
print_r($result);
Run Code Online (Sandbox Code Playgroud)