Classement des éléments d'un tableau par fréquence

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Classement des éléments d'un tableau par fréquence

par Cyrano » 13 mars 2008, 18:18

Merci pour avoir bien décoder ma demande et merci pour "array_keys" que je ne connaissais pas.
Ce bout de code fonctionne correctement.
Désolé pour être toujours un newbi.
Sois pas désolé d'être un débutant, il faut que chacun passe un jour par ce stade. Si on m'avais parlé de PHP en 2001 (et avant), j'aurais probablement demandé "Ça bouffe quoi l'hiver ce bétail-là ?" ;)

par Invité » 13 mars 2008, 17:21

Merci pour avoir bien décoder ma demande et merci pour "array_keys" que je ne connaissais pas.
Ce bout de code fonctionne correctement.
Désolé pour être toujours un newbi.

par d0m » 13 mars 2008, 17:02

Salut,

d'après tes exemples tu veux faire 2 choses :
- obtenir un tableau d'arrivée une seule occurrence de chaque élément
- ranger ces éléments du plus nombreux dans le tableau de départ au moins nombreux.

Dans un premier temps il faut bien utiliser array_count_values()

Tu obtiens un tableau avec pour clé pomme, banane,... et comme valeur leur fréquence.
Il faut donc trier ce tableau dans l'ordre décroissant tout en gardant les clé.
Pour cela il y a la fonction asort()
Ensuite tu n'as plus qu'à récupérer les clés dans l'ordre grace à la fonction array_keys().

Classement des éléments d'un tableau par fréquence

par JHdebutant » 13 mars 2008, 16:27

Bonjour et merci à ceux qui pourront m'aider.
J'essaie de classer les éléments d'un tableau par leur fréquence mais je butte sur le classement.
Exemple : array(pomme,banane,pomme,orange,cerise,banane,pomme). L'objectif est d'obtenir l'ordre suivant : Pomme, banane,orange,cerise.
Je n'arrive pas appliquer le tri décroissant le tableau résultant ?

$tableau = array("pomme,banane,pomme,orange,cerise,banane,pomme");
		if (is_array($tableau)){
			$countelements = array_count_values ($tableau);
				foreach($countedelements as $k => $v) {
					echo $k;
				}
		}