Php, classement tableau - PHP - Programmation
Marsh Posté le 27-03-2009 à 18:06:12
Si je capte bien, tu veux trier tes $noms en fonction de leurs points ?
Si c'est le cas, le tri de la 2ème dimension dépend de la 3ème et donc le multisort ne peut pas t'aider.
Ceci-dit, je ne suis pas complètement certain de la judicieusité d'un tableau à 3 dimensions pour ce que tu veux faire.
Une solution pas très propre avec ton tableau à 3 dimensions:
Code :
|
Sinon, en 1 dimension:
Code :
|
C'est évidemment TRES TRES optimisable (par exemple en utilisant la PHP SPL http://fr3.php.net/spl )
Marsh Posté le 27-03-2009 à 18:42:42
Bonjour,
Merci de m'avoir répondu, je vais essayer votre code.
En effet, j'aimerais trier les noms en fonction des points et les classer, tableau donc à une dimension:
$score[$nom]=$total;
Je n'ai pas bien compris la solution à 1 dimension lorsque vous mettez:
$score = array();
while($on_a_des_scores_a_mettre)
{
$score[$id_unique_du_joueur] = array('id' => $id_unique_du_joueur', 'nom' => $nom, 'points' => $points');
}
et si dans le cas de l'égalité des points entre deux équipes, la différence de buts détermine le classement, j'aurai deux dimensions?
$score[$nom]=$diffbut;
Merci beaucoup
Marsh Posté le 27-03-2009 à 21:53:10
Bonsoir,
La solution du tableau à 3 dimensions fonctionne. Merci beaucoup. Je n'ai pas réussi à faire avec celle d'une dimension.
J'aimerais savoir en cas d'égalité des points comment trier en sorte que la différence de buts détermine le rang
différence de buts= buts marqués-buts encaissés
Si équipe A et B ont toutes les deux 5 points,
Diff de buts A = -3
diff de buts B= -5
alors A est classé avant B
Je vous remets le code avec la différence de buts:
Code :
|
Merci beaucoup
Marsh Posté le 27-03-2009 à 14:00:18
Bonjour,
J'ai un tableau comme ceci que je souhaite trier dans l'ordre décroissant puis faire un classement numéroté 1,2,3,..
J'ai essayé avec array_multisort mais ca ne me donne pas le bon tri.
J'ai obtenu ceci:
Array ( [0] => Array ( [Pa] => Array ( [points] => 1 ) ) [1] => Array ( [To] => Array ( [points] => 4 ) ) [2] => Array ( [Ca] => Array ( [points] => 5 ) ) [3] => Array ( [Ma] => Array ( [points] => 0 ) ) )
ET j'ai un message d'erreur lorsque je tente de réaliser un classement:
Comment puis je faire un classement ?
Merci d'avance