Problème avec array_count_values

Problème avec array_count_values - PHP - Programmation

Marsh Posté le 23-11-2006 à 13:45:44    

Bonjour,
 
J'utilise la fonction array_count_values afin de compter les valeurs d'un tableau, mais je n'arrive pas à exploiter le résultat : ça me renvoie une chaine contenant un truc du type : array([toto] => 2, [titi] => 5, etc...) alors que je voudrais récupérer un véritable tableau afin de l'exploiter. Comment faire ?
 
Merci d'avance.

Reply

Marsh Posté le 23-11-2006 à 13:45:44   

Reply

Marsh Posté le 23-11-2006 à 14:20:50    

array_count_values retourne bien un tableau
le résultat dont tu parles ressemble au résultat d'un print_r ou var_dump sur un tableau
 
un bout de ton code pour y voir plus clair ?

Reply

Marsh Posté le 23-11-2006 à 14:55:27    

Voilà ce que j'essaye de faire :
 

Code :
  1. $fichier="C:/Extraction.txt";
  2. if (file_exists($fichier))  //Vérifier que ce fichier existe bien
  3. {
  4. $fd=fopen($fichier,'r');  // Ouverture du fichier en lecture seule
  5. while(!feof($fd))   // tant que pas en fin de fichier
  6. {
  7.  $ligne=fgets($fd,8192);
  8.  $ligne=ereg_replace("'",'',$ligne);
  9.  $liste=explode(',', $ligne);
  10.  if (isset($liste[0])&& isset($liste[1])&& isset($liste[2]))
  11.  {
  12.   $bloc=htmlentities($liste[0]);
  13.   $calque=htmlentities($liste[1]);
  14.   $type=htmlentities($liste[2]);
  15.   $table_extraction[$id]=array($bloc,$calque,$type);
  16.   $id++;
  17.  }
  18. }
  19. fclose($fd); //Fermeture du fichier
  20. echo '<br/><br/>Le plan comporte : '.sizeof($table_extraction).' blocs<br/><br/>';
  21. // Classement du tableau par ordre alphabétique
  22. sort($table_extraction);
  23. // Le paragraphe suivant sert à transférer le tableau deux dimensions en un tableau une dimension
  24. $comptage=array();
  25. for($i=0;$i<sizeof($table_extraction);$i++)
  26.     {
  27.  // Rajoute une valeur dans le tableau
  28.  array_push($comptage, $table_extraction[$i][0]);
  29. }
  30. $resultat=var_export(array_count_values($comptage), true); // Compte le nombre de valeurs
  31. for($i=0;$i<sizeof($resultat);$i++)
  32.     {
  33.      echo $resultat[$i].'<br/>';
  34. }
  35. }
  36. else
  37. {
  38. echo 'Le fichier n\'existe pas';
  39. }


 
Mais ça pose un problème. Qu'en pensez vous ?

Reply

Marsh Posté le 23-11-2006 à 15:14:54    

pourquoi tu utilises var_export ?

Reply

Marsh Posté le 23-11-2006 à 15:41:04    

soju a écrit :

pourquoi tu utilises var_export ?


J'utilisais var_export pour m'éviter une erreur : j'ai essayer de faire juste :

Code :
  1. $resultat=array_count_values($comptage);
  2. echo $resultat.'<br/><br/><br/><br/>';
  3. for($i=0;$i<sizeof($resultat);$i++)
  4.     {
  5.      echo $resultat[$i].'<br/>';
  6. }


 
Mais au niveau de la ligne 3 j'obtiens : Array, et au niveau de la ligne 7 j'obtiens le message d'erreur : Notice: Undefined offset: 0 in c:\index.php on line 42

Ce qui n'est pas réellement exploitable.

Reply

Marsh Posté le 23-11-2006 à 16:30:15    

Hello,
 
tu ne peux pas afficher un tableau avec echo/print
essaies plutot ça pour parcourir ton tableau, etant donné que tu ne sait pas quelles valeurs constituent les indexs
 

Code :
  1. $resultat=array_count_values($comptage);
  2. foreach($resultat as $cle=>$valeur)
  3. {
  4.      echo $cle.' => '.$valeur.'<br/>';
  5. }

Reply

Marsh Posté le 23-11-2006 à 18:01:58    

sub1 a écrit :

Hello,
 
tu ne peux pas afficher un tableau avec echo/print
essaies plutot ça pour parcourir ton tableau, etant donné que tu ne sait pas quelles valeurs constituent les indexs
 

Code :
  1. $resultat=array_count_values($comptage);
  2. foreach($resultat as $cle=>$valeur)
  3. {
  4.      echo $cle.' => '.$valeur.'<br/>';
  5. }



 
Merci sub1, ce n'était pas la fonction array_count_values qui n'allait pas, c'est moi qui me plantait en voulant afficher le contenu du tableau.
 
Merci beaucoup à vous tous pour votre aide.

Reply

Sujets relatifs:

Leave a Replay

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