- array [PHP] - Programmation
Marsh Posté le 11-02-2002 à 17:42:02
Je crois qu'il faut le faire (avec un vecteur, c'est easy ) ... par contre si ca existe deja, alors je prends !
Marsh Posté le 11-02-2002 à 17:50:17
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 !
Marsh Posté le 11-02-2002 à 17:58:07
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];
Marsh Posté le 11-02-2002 à 17:58:13
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 !!!
Marsh Posté le 11-02-2002 à 18:01:18
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]
Marsh Posté le 11-02-2002 à 18:07:01
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+
Marsh Posté le 11-02-2002 à 17:39:41
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]