Double tri dans un Array pour un classement

Double tri dans un Array pour un classement - PHP - Programmation

Marsh Posté le 16-02-2007 à 01:34:50    

Bonjour @ tous
 
Voilà, ce que je voudrais faire c'est trié un tableau de classement, non seulement par le nombre de points de l'équipe, mais en plus par le différence de but encaisés.
 
Voici l'exemple type du tableau que mes requêtes SQL et calculs me donne :  

Array (
  [1] => Array ( [play] => 3 [butp] => 4 [butc] => 14 [diff] => -10 [wins] => 1 [lost] => 2 [nuls] => 0 [pnts] => 5 [team] => Mon_Equipe_01 )
  [2] => Array ( [play] => 3 [butp] => 8 [butc] => 8 [diff] => 0 [wins] => 1 [lost] => 1 [nuls] => 0 [pnts] => 5 [team] => Mon_Equipe_02 )
  [3] => Array ( [play] => 2 [butp] => 13 [butc] => 4 [diff] => 9 [wins] => 2 [lost] => 1 [nuls] => 0 [pnts] => 6 [team] => Mon_Equipe_03 )
  [4] => Array ( [play] => 3 [butp] => 15 [butc] => 2 [diff] => 13 [wins] => 3 [lost] => 0 [nuls] => 0 [pnts] => 9 [team] => Mon_Equipe_04 )
  [5] => Array ( [play] => 3 [butp] => 14 [butc] => 3 [diff] => 11 [wins] => 3 [lost] => 1 [nuls] => 0 [pnts] => 9 [team] => Mon_Equipe_05 )
  [6] => Array ( [play] => 2 [butp] => 7 [butc] => 5 [diff] => 2 [wins] => 1 [lost] => 0 [nuls] => 0 [pnts] => 4 [team] => Mon_Equipe_06 )
  [7] => Array ( [play] => 3 [butp] => 5 [butc] => 9 [diff] => -4 [wins] => 0 [lost] => 0 [nuls] => 1 [pnts] => 3 [team] => Mon_Equipe_07 )
  [8] => Array ( [play] => 3 [butp] => 4 [butc] => 15 [diff] => -11 [wins] => 0 [lost] => 1 [nuls] => 0 [pnts] => 3 [team] => Mon_Equipe_08 )
  [9] => Array ( [play] => 3 [butp] => 11 [butc] => 13 [diff] => -2 [wins] => 1 [lost] => 2 [nuls] => 1 [pnts] => 6 [team] => Mon_Equipe_09 )
  [11] => Array ( [play] => 2 [butp] => 4 [butc] => 6 [diff] => -2 [wins] => 1 [lost] => 0 [nuls] => 0 [pnts] => 4 [team] => Mon_Equipe_10 )
  [10] => Array ( [play] => 3 [butp] => 8 [butc] => 14 [diff] => -6 [wins] => 1 [lost] => 0 [nuls] => 0 [pnts] => 5 [team] => Mon_Equipe_11 )
 )


 
Je m'éxplique : A partir de différentes requêtes, j'ajoute a mon array[$i] les informations. $i correpond à mon identifiant d'équipe dans ma BDD.
 
Lorsque je veux afficher le tout sous forme de tableau, je fais un for ($i < count(array)) et celà m'affiche mes valeurs, pas de soucis.... sauf que... c'est pas trié :/
 
Ce que je voudrais, c'est réussir à trier non seulement sur le nombre de points décroissants (Array[$i][pnts]) mais aussi sur la différence de but pour/contre (Array[$i][diff]), histoire que le premier, avec 9 points, soit celui qui ai la plus grosse différence (a mis + de but qu'il s'en est pris).
 
J'ai donc été faire un tour sur http://fr2.php.net/array et après avoir cherché dans les fonctions asort et array_multisort, je reste sans réponses...
 
Pouvez vous m'aider à classer mes équipes ??
 
Merci et bien cordialement
Kamui

Reply

Marsh Posté le 16-02-2007 à 01:34:50   

Reply

Marsh Posté le 16-02-2007 à 09:11:22    

tu te fais ta propre fonction de comparaison et tu utilises usort

Reply

Sujets relatifs:

Leave a Replay

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