2010-09-05 4 views
4

D'accord, je l'ai donc obtenu un tableau qui a une tonne de nombres aléatoires en elle, comme celui-ci ...Obtenir le nombre total de chaque valeur unique dans un tableau?

$array = array(134, 12, 54, 134, 22, 22, 1, 9, 45, 45, 12, 134, 45, 134); 

Ce que je dois faire, est de savoir ce que les chiffres sont contenus dans mon tableau, et si un nombre est dupliqué dans le tableau, j'aimerais savoir combien de fois ce nombre est trouvé dans le tableau. Donc, en prenant le tableau que j'énuméré ci-dessus, je dois les résultats pour être quelque chose comme ceci:

134: 4 
12: 2 
54: 1 
22: 2 
1: 1 
9: 1 
45: 3 
etc. 

Toutes les idées claires sur la façon dont cela pourrait se faire?

Merci!

Répondre

8

Voir array_count_values.

<?php 
print_r(array_count_values(
     array(134, 12, 54, 134, 22, 22, 1, 9, 45, 45, 12, 134, 45, 134))); 

donne:

 
Array 
(
    [134] => 4 
    [12] => 2 
    [54] => 1 
    [22] => 2 
    [1] => 1 
    [9] => 1 
    [45] => 3 
) 
+0

Et ici, j'écris une fonction pour répondre à la question des auteurs. Je ne savais pas que cette fonction existait. Merci! –

2

Utilisez array_count_values() pour compter les occurrences de chaque valeur unique:

$counts = array_count_values($array); 
var_dump($counts); 

Sortie:

array(7) { 
    [134]=> 
    int(4) 
    [12]=> 
    int(2) 
    [54]=> 
    int(1) 
    [22]=> 
    int(2) 
    [1]=> 
    int(1) 
    [9]=> 
    int(1) 
    [45]=> 
    int(3) 
} 
2

Vous pouvez utiliser la fonction:

array_count_values($array) 
Questions connexes