2013-08-05 4 views
-2

Je dispose d'un fichier texte avec une liste des jeux que les gens sont entrés, le tout sur un nouveau comme comme celui-ci:doublons de comptage de PHP dans un fichier texte

<tr><td>proatowning</td><td>Final Fantasy X</td></tr> 
<tr><td>drunkenveteran</td><td>Trials Evolution</td></tr> 

Maintenant, ce que je voudrais est une sorte de code qui permet moi de compter les doublons et de les retourner avec le nombre de fois qu'il a été utilisé.

Par exemple:
5 personnes soumettre "Final Fantasy X".
personnes soumettent «Trials Evolution».

Ensuite, il devrait retourner quelque chose comme ceci:

<tr><td>Final Fantasy X</td><td>5</td></tr> 
<tr><td>Trials Evolution</td><td>3</td></tr> 

Ce que je peux donc l'utiliser dans une table. Ce serait génial si cela ne pouvait afficher que le top 10 des jeux les plus votés (la plupart des doublons).

Merci.

+1

Conservez-vous les données dans un type de base de données, ou peut-être XML? Je suis juste un peu inquiet que vous utilisiez une table HTML comme stockage. – Flosculus

+0

Eh bien, c'est une liste qui est effacée chaque semaine, les gens entrent dans un jeu via une zone de texte et sont stockés dans un fichier texte. –

Répondre

0

Je pense que vous cherchez quelque chose comme ceci, en tirant simplement la deuxième balise <td>, en vérifiant si c'est déjà dans un tableau, alors si c'est le cas, ajoutez au compte, sinon, ajoutez un élément au tableau . puis sortir le tableau à la fin.

$lines = file('myfile.txt'); 
$games = array(); 

foreach ($lines as $line_num => $line) { 
    $pos = strpos($line,'<td>',8);//start the search for <td> after first one 
    $game = substr($line,$pos); 
    $game = substr($game,4,-4);//remove the <td> tags 
    foreach($games as $name => &$count){ 
     if ($game == $name) $count++; 
     else $games[$game] = 1; 
    } 
} 
foreach($games as $name => $count){ 
    echo "<b>".$count."</b> people submitted \"".$name."\"\n"; 
} 
+0

Hmm, pour une raison quelconque, cela ne montre rien. ' proatowning Final Fantasy X' ' proatowning Final Fantasy X' –

+0

Je n'ai pas testé, vous aurez probablement besoin de faire quelques changements, mais cela vous aider à démarrer dans la bonne direction. Si cela ne montre rien, alors il y a probablement une erreur de syntaxe. – Optox

+0

Oui mais je crois que c'est ce que je cherchais, merci beaucoup! –

Questions connexes