Quelque chose de similaire à ceci: Obtenez l'élément avec la plus haute occurrence de un tableau p>
Différence est dont j'ai besoin de plus d'un résultat, nécessité 5 résultats. Donc la plus haute survenue supérieure dans un (grand) tableau. P>
Merci! P>
3 Réponses :
Construisez la matrice de comptes et mettez-les dans l'ordre inverse:
$mode = array_count_values($input);
arsort($mode);
$i = 0;
foreach ($mode as $k => $v) {
$i++;
echo "$i. $k occurred $v times\n";
if ($i == 5) {
break;
}
}
php fournit en fait une pratique pratique Fonctions de tableau Vous pouvez utiliser pour atteindre Ceci.
Exemple: P>
<?php
$arr = array(
'apple', 'apple', 'apple', 'apple', 'apple', 'apple',
'orange', 'orange', 'orange',
'banana', 'banana', 'banana', 'banana', 'banana',
'pear', 'pear', 'pear', 'pear', 'pear', 'pear', 'pear',
'grape', 'grape', 'grape', 'grape',
'melon', 'melon',
'etc'
);
$reduce = array_count_values($arr);
arsort($reduce);
var_dump(array_slice($reduce, 0, 5));
// Output:
array(5) {
["pear"]=> int(7)
["apple"]=> int(6)
["banana"]=> int(5)
["grape"]=> int(4)
["orange"]=> int(3)
}
Vous allez ici:
$yourArray = array(1, "hello", 1, "world", "hello", "world", "world"); $count = array_count_values($yourArray); arsort($count); $highest5 = array_slice($count, 0, 5); echo '<pre>'; print_r($highest5); echo '</pre>';
@Matt: Merci, quand j'ai posté ma réponse, je n'ai pas réalisé que vous utilisiez déjà la fonction array_count_values () code>.