Double tri dans un Array pour un classement - PHP - Programmation
MarshPosté 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 :
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).
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