0

私は次のような配列を持っています:

$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のみを表示したいと思います。でもどうしたらいいのかわからない…助けてくれてありがとう!

4

3 に答える 3

8

試す

$count = array_count_values($names);
arsort($count, SORT_NUMERIC);
$result = array_slice($count, 0, 3);
print_r($result);
于 2012-11-14T08:35:58.757 に答える
4

を調べてみるとよいでしょうarray_slice()

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

これは、その配列の最初の 3 つの要素を返します。ドキュメントはここにあります

于 2012-11-14T08:36:30.210 に答える
2

これを試して

$i = 0;
foreach ($count as $key => $value) {
    if($i == 3){
        break;
    }
    echo $value . ' – ' . $key . '<br />';
    $i++;
}
于 2012-11-14T08:36:02.417 に答える