L'obtention de la plus répétée des valeurs dans un tableau
J'ai un tableau de nombres comme ceci:
$array = array(1,1,1,4,3,1);
Comment puis-je obtenir le nombre de plus répété de la valeur?
le risque de duplication stackoverflow.com/questions/4359721/...
Cela sonne comme des devoirs. Le lien ci-dessus est trop intelligent pour un travail à la maison. C'est pas juste ;)! Mais "double question" il est!
Il sonne comme un "devoirs" en effet. Mais vous n'avez jamais essayé de les aider :-(. Votre entrée aurait été utile. @paulsm4.
Cela sonne comme des devoirs. Le lien ci-dessus est trop intelligent pour un travail à la maison. C'est pas juste ;)! Mais "double question" il est!
Il sonne comme un "devoirs" en effet. Mais vous n'avez jamais essayé de les aider :-(. Votre entrée aurait été utile. @paulsm4.
OriginalL'auteur Robert Wilson | 2012-05-16
Vous devez vous connecter pour publier un commentaire.
Cela devrait fonctionner:
Le code est très bien mais la sortie n'a pas fonctionné. Correcte serait:
echo "The most occuring value is ".$keys[0]." with ".$count[$keys[0]]." occurences.";
OriginalL'auteur Connor Peet
Je pense que array_count_values fonction peut être utile pour vous. Regardez ce manuel pour plus de détails : http://php.net/manual/en/function.array-count-values.php
OriginalL'auteur Anatoly
Si votre tableau contient des chaînes ou des nombres entiers, vous pouvez utiliser
array_count_values
etarsort
:Qui laisserait le plus utilisé de l'élément de la première de
$counts
. Vous pouvez obtenir le nombre quantité et en valeur par la suite.Il est important de noter que si il y a plusieurs éléments avec la même quantité d'occurrences dans le tableau d'origine je ne peux pas dire pour sûr que l'on vous obtiendrez. Tout dépend de la mise en œuvre de
array_count_values
etarsort
. Vous aurez besoin de tester cela pour éviter les bugs par la suite si vous avez besoin d'un en particulier, de ne pas faire des hypothèses.Si vous avez besoin d'un en particulier, vous feriez peut-être mieux de ne pas utiliser
arsort
et à écrire à la réduction de la boucle de vous-même.Après la boucle foreach,
$max_item
contient le dernier élément qui apparaît le plus dans le tableau d'origine aussi longtemps quearray_count_values
retourne les éléments dans l'ordre où ils sont (ce qui semble être le cas d'après l'exemple de la documentation). Vous pouvez obtenir le premier élément à apparaître le plus dans votre tableau d'origine en utilisant une comparaison non-stricte ($amount >= $max
au lieu de$amount > $max
).Vous pourriez même obtenir tous les éléments liés à la quantité maximum d'occurrences de cette façon:
OriginalL'auteur Toote
Vous pouvez compter le nombre d'occurrences de valeurs dans un tableau avec
array_count_values
:Puis il suffit de faire un tri inverse sur le compte:
Puis vérifiez la valeur de dessus pour obtenir votre mode.
OriginalL'auteur jaredhoyt
Je ne me souviens pas si asort sortes asc ou desc par défaut, vous pouvez voir le commentaire dans le code.
OriginalL'auteur goat
Ici deux solutions:
1 par
array_count_values()
et un par la main.
OriginalL'auteur shotex
OriginalL'auteur Mohamed Habeeb
String S;
la syntaxe peut varier, mais la logique reste la même.
absolument. cependant, prendre un coup d'oeil à l'autre des réponses. en ajoutant plus de contexte et/ou des commentaires, ils clarifier le problème le plus.
OriginalL'auteur hitesh141
voici la solution
class Classetest {
}
$catch = new Classetest();
$array = array(1, 1, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3, 1, 2, 3, 1, 1, 2, 5, 7, 1, 9, 0, 11, 22, 1, 1, 22, 22, 35, 66, 1, 1, 1);
echo $catch->maxused_num($array);
OriginalL'auteur ashish yadav