compter le nombre de fois que le mot est dans une chaine de caractére:

compter le nombre de fois que le mot est dans une chaine de caractére: - PHP - Programmation

Marsh Posté le 28-10-2005 à 02:33:35    

Bonjour,
voila j'arrive pas ;) comme d'hab
je voudrais avoir les 5 mots qui sont le plus souvent dans une chaine de caratere,
le probleme c'est que j'arrive pas a les resortir alors que je sais lesquels c'est :

Code :
  1. <?
  2.    $mots = explode(" ",$chaine);
  3.    $nb = count($mots);
  4.     for ($i = 0; $i < $nb; $i++)
  5.         {
  6.         if (strlen($mots[$i]) < 3)
  7.             {
  8. // on ne prends pas en compte les petits mots comme le la etc...
  9.             $mots[$i] = "";
  10.             }
  11.         }
  12. $mots2 = array_count_values($mots);
  13. print_r($mot2);
  14. ?>


la je vois quel sont les mots les plus frequent mais ils ne sont pas classé dans l'ordre !! et je voudrais avoir les Top 10 par exemple !
comment je peux faire ???


Message édité par 100top le 28-10-2005 à 02:34:13
Reply

Marsh Posté le 28-10-2005 à 02:33:35   

Reply

Marsh Posté le 28-10-2005 à 08:52:22    

Pour le top 5, je crois qu'il suffit d'ajouter :

arsort($mot2);
for ($i = 0; $i < 5; $i++)
   print($mot2[$i]);

Pour la doc sur arsort(), voir http://us2.php.net/manual/en/function.arsort.php


Message édité par olivthill le 28-10-2005 à 08:53:18
Reply

Marsh Posté le 28-10-2005 à 08:52:51    

http://fr.php.net/arsort
non ?
 
EDIT : grilled

Message cité 1 fois
Message édité par soju le 28-10-2005 à 08:53:08
Reply

Marsh Posté le 28-10-2005 à 12:16:33    


 
non ca ne marche pas,
en fait je ne crois pas que le $mots2 = array_count_values($mots); soit bon parce que le tableau est inversé !!
 

Code :
  1. Array ( [0] => [1] => chein [2] => dort [3] => dehors [4] => [5] => [6] => [7] => pleut [8] => [9] => [10] => [11] => chien [12] => chat [13] => animaux [14] => animaux )
  2. // premier tableau contenant les mots avant le array_count_value
  3. Array ( [] => 7 [animaux] => 2 [chien] => 1 [chat] => 1 [dehors] => 1 [chein] => 1 [dort] => 1 [pleut] => 1 )
  4. // 2eme tableau avec le array_count_value !


 
est ce que vous voyez ce que ca fait ?
quand je fais print_t(arsort($mot2)); il me sort rien du tout.
je comprends pas :
definition :  
array_count_values() retourne un tableau contenant les valeurs du tableau input comme clés et leur fréquence comme valeur.  
 
de l'aide ???

Reply

Marsh Posté le 28-10-2005 à 14:02:42    

$mot2 != $mots2

Reply

Marsh Posté le 28-10-2005 à 14:03:27    

soju a écrit :

$mot2 != $mots2


 
 
j'ai trouvé

Code :
  1. $mot2 = array_count_values($mots);
  2.   $nb=count($mot2)-1;
  3.   $array = array_keys($mot2);
  4.   $n_motcle2="";
  5.   for ($i = $nb; $i >= $nb-4; $i--) {
  6.   // on prends que les 5 meilleurs
  7.    $n_motcle2.=$array[$i]." ";
  8.   }

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed