Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1435 connectés 

  FORUM HardWare.fr
  Programmation

  [PHP] - array

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] - array

n°98989
SquiiiD
be cool !
Posté le 11-02-2002 à 17:39:41  profilanswer
 

Salut je voudrais savoir si il est possible en php, dans un tableau array de compter combien de fois une valeur apparait !
 
Par exemple on a ce tableau ci :  
 
$var[0]=3;
$var[1]=2;
$var[2]=2;
$var[3]=3;
$var[4]=1;
$var[5]=3;
$var[6]=1;
$var[7]=3;
$var[8]=2;
 
ou $var = array("3","2","2","3","1","3","1","3","2" );
 
c pareil
 
je voudrais savoir par exemple combien de fois le chiffre 3 se repete dans le tableau ... ici il se repete 4 fois, y a t il une commande appropriee?? Ou dois je pondre un algo....
 
merci pour vos reponses !
 
SquiD

 

[jfdsdjhfuetppo]--Message édité par SquiiiD--[/jfdsdjhfuetppo]

mood
Publicité
Posté le 11-02-2002 à 17:39:41  profilanswer
 

n°98990
_epegasus_
Posté le 11-02-2002 à 17:42:02  profilanswer
 

Je crois qu'il faut le faire (avec un vecteur, c'est easy :)) ... par contre si ca existe deja, alors je prends :D !

n°98992
SquiiiD
be cool !
Posté le 11-02-2002 à 17:43:24  profilanswer
 

Avec un vecteur? c'est a dire?
 
Merci

n°98994
_epegasus_
Posté le 11-02-2002 à 17:50:17  profilanswer
 

Bah si c'est juste des chiffres que tu veux compter :
 
// La tu comptes
for($i=0; $i<sizeOf($var); $i++){
  $countVar[$var[$i]]++;
}
 
// La tu affiches
for($i=0; $i<sizeOf($countVar); $i++){
  echo ("Il y a ".$countVar[$i]." fois ".$i." dans le vecteur." );
}
 
Je ne te fais pas l'affront de mettre le code pour ne pas afficher les k ou il y a zeros element :)
 
Par contre si tu veux compter le nombre d'occurences dans un vecteur de chaines de caracteres, faut que je verifie un truc mais c'est pas beaucoup plus dur !

n°98999
speedyop
Posté le 11-02-2002 à 17:58:07  profilanswer
 

plus simple:
array_count_values
(PHP 4 >= 4.0.0)
 
array_count_values -- Compte le nombre de valeurs dans un tableau
Description
array array_count_values ( array input)
array_count_values() retourne un tableau contenant les valeurs du tableau input comme clés et leurs fréquence comme valeur.  
 
Exemple 1. Exemple avec array_count_values()
 
<?php
  $array = array(1, "bonjour", 1, "monde", "bonjour" );
  array_count_values($array);  
// retourne array(1=>2, "bonjour"=>2, "monde"=>1)
?>
 
 
 
 
Note : array_count_values() a été ajoutée en PHP 4.0.  
 
 
User Contributed Notes
array_count_values
   
 
kwa@www-aius.u-strasbg.fr
09-Mar-2001 07:49  
 
PHP 3 implementation:
 
$count_array = array();  
 
reset($orig_array);
while(list(, $val) = each($orig_array)) ++$count_array[$val];

n°99000
SquiiiD
be cool !
Posté le 11-02-2002 à 17:58:13  profilanswer
 

Je vais essayer ton code,  
 
Mais pour etre precis en fait je veux faire ca pour l'elaboration d'un petit moteur de recherche...
 
Je sais utiliser le LIKE '%$var%' dans la requete mais le prob c'es que ca ne marche bien que si on entre qu'un seul mot clef a chercher, si je recherche par exemple le mots  
"php pour debutant" ben la requete SQL va rien trouver, alors se que je fait c'est de faire un explode(); sur ce que le visiteurs a entrer et je compte le nombre de mots.
 
en fait voila le code ca sera plus simple :  
 
 
<?
 include "config.php3";
 //Connection a la DATA-BASE !!
 $mysql_link = mysql_connect($host, $user, $pass);
 mysql_select_db($base) or die( "Connexion impossible à la base de donnée !!! " );
 
 
 
 $mots_recherche = explode(" ",$recherche);
 $nb_mots_recherche = count($mots_recherche);
 
 for($i=0;$i<$nb_mots_recherche;$i++)
  {
  $req = "SELECT * FROM anu_sites WHERE url LIKE '%$mots_recherche[$i]%' or titre LIKE '%$mots_recherche[$i]' or description LIKE '%$mots_recherche[$i]%' or mots_clefs LIKE '%$mots_recherche[$i]%' ORDER BY id";
  $result = mysql_query($req);
   
                 while($resultat = mysql_fetch_array($result))
   {
   $id_site .= " ".$resultat["id"];    
   }
  }
 
 echo "$id_site";  
?>
 
 Et ici on obtient la liste des id parfois 2 fois les meme ou 3 fois les meme ou 4.
 
et je veux afficher la liste des site en commencant par ceux dont le numero se repete le plus,... et sans avoir le bug que le meme site apparait plusieur fois dans la liste,...
 
si c'est pas assez clair dis le ;p je comprendrais..
 
merci d'avance !!!

n°99001
speedyop
Posté le 11-02-2002 à 18:01:18  profilanswer
 

donc dans ton exemple ca se limite a  
 
$var  = array("3","2","2","3","1","3","1","3","2" );  
$var2 = array_count_values($var);
 
et tu recupere le nombre d'occurence de 3 dans $var2[3]

n°99004
_epegasus_
Posté le 11-02-2002 à 18:03:31  profilanswer
 

Si je lis bien ton code tu es en php3 ... :)

n°99005
SquiiiD
be cool !
Posté le 11-02-2002 à 18:07:01  profilanswer
 

heu oui mais ca en fait je v changer parce que j'etais sur free avant qui n'acceptait ke les fichier php3 mais la jai acheter mon nom de domaine donc ca va passer un php4.....
 
merci pour vos reponses les gars v essayer de me debrouiller avec ;)  
 
si ca va pas je reply encore une fois a+


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [PHP] - array

 

Sujets relatifs
[PHP ou autre] Comment savoir si un serveur fonctionne ?[ PHP ] - generateur aleatoire marche pas sur certain serveur !?
[PHP] Problème de eregi[PHP] Récupérer plusieurs valeurs d'un champ <SELECT>
Php : code html à transéfer d'une page vers l'autre[PHP] histoire de tableau et de explode
[PHP] Un hebergeur ??[PHP] Manipulation de chaîne : pb avec Array
[PHP] comment transformer un long string en array ?[PHP] Utiliser la fonction array_count_values.
Plus de sujets relatifs à : [PHP] - array


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR