Trier un tableau associatif ...

Trier un tableau associatif ... - PHP - Programmation

Marsh Posté le 06-11-2003 à 09:39:29    

Bonjour,
 
voila mon problème je recupere des identifiants et des moyennes qui leur sont associées ...
je rempli un tableau, et je voudrai conserver les 5 identifiants correspondant aux 5 moyennes les plus élevées ...
 
Pour remplir mon tableau :
 

Code :
  1. $selection = "SELECT Id, AVG(Note) FROM notes WHERE TypeNote='film' GROUP BY Id";
  2. $result = mysql_query($selection);
  3. while ($extract=mysql_fetch_array($result)) {
  4. $tab['id'] [] = $extract[0];
  5. $tab['note'] [] = $extract[1];
  6. }


 
le but étant donc de trier le tableau selon "note décroissant" tout en conservant l'équivalence avec les id ... ben moi des idées j'en ai pas ... et vous ?


---------------
L'arsenic est present a l'etat de traces dans toutes matieres vivantes. www.arsenick.net
Reply

Marsh Posté le 06-11-2003 à 09:39:29   

Reply

Marsh Posté le 06-11-2003 à 10:00:10    

Tu peux pas finir ton select par un "ORDER BY AVG(Note) DESC LIMIT 5" ou un truc du genre ?
 
Pour n'avoir que les 5 moyennes les plus élevées...

Reply

Marsh Posté le 06-11-2003 à 10:01:19    

merci de ta reponse, ...  
c'est effectivement ce que j'ai fait ...
 
je laissé le sujet ouvert pour avoir une réponse, car je me demande toujours comment trier ce genre de tableaux ...


---------------
L'arsenic est present a l'etat de traces dans toutes matieres vivantes. www.arsenick.net
Reply

Marsh Posté le 06-11-2003 à 11:47:42    

Quoi qu'il arrive trier déjà dans la requete est une bonne chose, par contre au niveau du traitement du résultat j'aurrais eu plus tendance à faire:

Code :
  1. while ($extract=mysql_fetch_array($result)) {
  2.   $tab[$extract[0]] = $extract[1];
  3. }


 
Comme ça tu te retrouves avec un seul tableau ayant pour clé ton id et pour valeur ta note. Ainsi si tu as besoin d'effectuer d'autres tris après tu as le droit à toutes les fonctions ( arsort(), rsort(), ksort(), sort())

Reply

Marsh Posté le 06-11-2003 à 11:49:26    

exact !!  
j'ai laissé mon cerveau à la maison ce matin ;)


---------------
L'arsenic est present a l'etat de traces dans toutes matieres vivantes. www.arsenick.net
Reply

Sujets relatifs:

Leave a Replay

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