2012-05-18 1 views
-2

J'ai un fichier (leaderboard.txt) qui ressemble à ceci:PHP - Nombre de Nombre de fois la chaîne apparaît dans le fichier

funkystudios 
funkystudios 
funkystudios 
gilletteracer74 
axehairgel 
Ferby123 
dirdam 
TheWu13 
Expert_Assassin 
TheWu13 
ocanosoup 

Je veux être en mesure de lire ce fichier et imprimer le nombre de fois que chaque personne apparaît dans le fichier. (Placer également dans l'ordre de nombre de fois dans le fichier)

funkystudios: 3 
TheWu13: 2 
gilletteracer74: 1 
axehairgel: 1 
(and so on) 

J'ai essayé de diverses manières, mais tout est descendu à un problème quand je voudrais essayer de les commander correctement ... Je devine que il y a un moyen assez facile de le faire. (Je suis nouveau à PHP ...)

EDIT: Je ai obtenu à ce point:

foreach(array_count_values(file('leaderboard.txt')) as $person => $count) 
echo "{$person} : {$count}<br />\r\n"; 

Il ne commande pas par le nombre de $, mais simplement qui vient en premier dans le fichier.

+0

Avez-vous essayé 'array_count_values ​​(file ($ filename))'? – Jon

+0

Oui J'ai essayé les valeurs du nombre de tableaux, vérifiez le commentaire de la première réponse pour voir mon vrai problème. –

Répondre

6
$counted = array_count_values(file('leaderboard.txt')); 

arsort($counted); 

    foreach($counted as $person => $count) 
     echo "{$person} : {$count}<br />\r\n"; 
+0

Ok, je suis arrivé là, mais ce que j'ai vraiment besoin de faire est d'ordonner par le nombre de fois que chaque utilisateur apparaît ... Pour le moment, il est dans l'ordre de ce qui apparaît dans le fichier. –

+0

Utilisez la fonction ['asort'] (http://www.php.net/manual/fr/function.asort.php)? – Ansari

+0

Keenan, j'ai édité la réponse. Laisse essayer ça. –

Questions connexes