[PHP] Classer un tableau de résultats par ordre décroissant

Classer un tableau de résultats par ordre décroissant [PHP] - PHP - Programmation

Marsh Posté le 09-02-2004 à 05:26:50    

Bonjour!
 
J'affiche les résultats des maths counter-strike en direct sur mon site, j'utilise le script de phprcon pour se connecter au serveur et récupérer les infos. L'affichage se fait sans problème, j'ai le pseudo des joueurs et à côté leur nombre de frags! Par contre l'affichage se fait ds le désordre, j'aimerai que ce soit le joueur qui a le plus de grags ki soit en haut du tableau et la suite par ordre décroissant.
 
Voici la partie du script ki va chercher les infos des joueurs :

Code :
  1. //Get players via info protocoll
  2.   function Players()
  3.   {
  4.     //If there is no open connection return false
  5.     if(!$this->connected)
  6.       return $this->connected;
  7.     //send players command
  8.     $command = "\xff\xff\xff\xffplayers\x00";
  9.     $buffer = $this->Communicate($command);
  10.     //If no connection is open
  11.     if(trim($buffer) == "" )
  12.     {
  13.       $this->connected = false;
  14.       return false;
  15.     }
  16.     //get number of online players
  17.     $buffer = substr($buffer, 1);
  18.     //build players array
  19.     for($i = 1; strlen($buffer) > 0; $i++)
  20.     {
  21.       //playername
  22.       $tmp = strpos($buffer, "\x00" );
  23.       $result[$i]["name"] = substr($buffer, 1, $tmp);
  24.       //frag count
  25.       $result[$i]["frag"] = ord($buffer[$tmp + 1]) +
  26.                            (ord($buffer[$tmp + 2]) << 8) +
  27.                            (ord($buffer[$tmp + 3]) << 16) +
  28.                            (ord($buffer[$tmp + 4]) << 24);
  29.       //online time
  30.       $tmptime = @unpack('ftime', substr($buffer, $tmp + 5, 4));
  31.       $result[$i]["time"] = date('i:s', round($tmptime['time'], 0) + 82800);
  32.       $buffer = substr($buffer, $tmp + 9);
  33.     } //for($i = 1; $i <= $count; $i++)
  34.     //return formatted result
  35.     return $result;
  36.   } //function Players()


Voici la partie du code qui affiche le tableau :

Code :
  1. echo "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"5\" border=\"0\"><tr><td>";
  2.  echo "<table cellspacing=\"0\" cellpadding=\"0\" width=\"100%\" height=\"100%\" border=\"0\">";
  3.  echo "<tr><td><b><p class=\"mm\">Pseudo</p></b></td><td align=\"center\"><b><p class=\"mm\">Frags</p></b></td></tr>";
  4.  // Tableau des joueurs
  5.      for($i = 1; is_array($players) && $i <= $info["activeplayers"]; $i++) {
  6.  echo "<tr><td class=\"mm\" align=\"left\">".substr($players[$i]["name"], 0, 15)."</td><td class=\"mm\" align=\"center\">".$players[$i]["frag"]."</td>";
  7.      }
  8.  echo "</table>";
  9.  echo "</td></tr></table>";


Comment faire pour que les joueurs soient classés simplement par leur nombre de frags ? :??:


Message édité par XK le 09-02-2004 à 05:56:10
Reply

Marsh Posté le 09-02-2004 à 05:26:50   

Reply

Marsh Posté le 09-02-2004 à 10:45:29    

http://ch2.php.net/manual/fr/function.sort.php
 
à utiliser dans la fonction Players, juste avant de le retourner


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 10-02-2004 à 07:46:25    

je vais essayer de faire avec ça, si quelqu'un a du courage et ve bien m'expliquer plus en détail comment faire ce n'est pas de refus :)

Reply

Sujets relatifs:

Leave a Replay

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