8791 sujets

Développement web côté serveur, CMS

Bonjour , j'ai une liste comme celle ci =

jardinage
blog
blog
blog
annerozen
html
css
jardinage


je voudrais faire un classement des mots qui reviennent le plus dans cette liste


blog = 3
jardinage =2
annerozen =1
html =1
css=1


Je n'arrive pas a construire l'aglo qui me fera ça en sachant que :

Tous les mots sont stockés dans un tableau :


$tab[1] = jardinage;
$tab[2] = blog;
$tab[3] = blog;
$tab[4] = blog;
...


Pouvez-vous m'aider ?
Modifié par remif (15 Jun 2012 - 14:18)
Moi j'aurai fait comme ça :

$blog <- 0
$jardinage <- 0
$annerozen <- 0
$html <- 0
$css <- 0

POUR i <- 0 JUSQU A (Nombre de case du tableau) PAS DE 1
FAIRE SI tab="blog" ALORS $blog=$blog+1 FINSI
SI tab[i]="jardinage" ALORS $jardinage=$jardinage+1 FINSI
SI tab[i]="annerozen" ALORS $annerozen=$annerozen+1 FINSI
SI tab[i]="html" ALORS $html=$html+1 FINSI
SI tab[i]="css" ALORS $css=$css+1 FINSI
FINPOUR
[/i][/i][/i][/i]
Bon j'ai trouvé comment faire avec la fonction array_count_values()

Voici le contenu de ma variable $search :
Array ( [jardinage] => 3 [blog] => 3 [annerozen] => 1 [html] => 1 [css] => 1 [Doodoo] => 1 )


Maintenant j'aimerais afficher ceci :


jardinage(3)
blog(3)


Comment faire pour l'afficher en utilisant des variables du genre :


echo $search[1]
il y a la fonction array_count_values() qui fait ce que tu veux faire Smiley smile

edit : ok tu as trouvé tout seul
Modifié par xirt (15 Jun 2012 - 13:18)
$search = Array (  jardinage  => 3  blog  => 3  annerozen  => 1  html  => 1  css  => 1 [Doodoo] => 1 )


tu fais juste


foreach ($search as $k => $v){
    echo $k.'('.$v.')<br />';
}


et tu auras


jardinage(2)
blog(3)
annerozen(1)
html(1)
css(1)
Merci je connais la fonction sort mais je veux classer en fonction du la deuxieme colonne de mon tableau et ça j'y arrive pas