Gestion array

Gestion array - PHP - Programmation

Marsh Posté le 30-04-2005 à 21:32:17    

Bonjour,
 
J'ai quelques petits problèmes avec l'utilisation des tableaux en php.
 
En effet, j'aimerais savoir comment il se manipule, apparament on est très éloigné de l'usage du C.
 
J'aimerais faire quelque chose d'assez simple à priori.
 
Créer un tableau dans lequel j'aurai 2 champs:
id_membre et rang
 
J'aimerais donc pouvoir insérer mes données dans ce tableau puis pouvoir les classer par rang.
 
Je pense donc à quelque chose comme ceci:
 
//initialisation des champs
$stats=array(id_membre, rang);
while($liste=mysql_fetch_object($rst)) // Admettons ...
{
stats[$liste->id_membre,$liste->mon_rang];
}
 
arsort(stats[rang]);
 
Je suppose que c'est bourré d'erreur mais je pense que cela est assez compréhensible pour que vous puissez m'aider à le traduire en véritable PHP.
J'ai beau regarder la documentation, je n'arrive à rien étant donné que je ne souhaite pas initialiser mes données dès la création de mon tableau.
 
Merci d'avance.

Reply

Marsh Posté le 30-04-2005 à 21:32:17   

Reply

Marsh Posté le 30-04-2005 à 23:13:57    

Euhhh, t'es sur que tu peux faire comme ca en C ??
Bon je dois avouer que mon C est un peu rouille (voire un peu beaucoup en fait), mais je me rappelle pas de ce genre de syntaxe.
 
Perso en C j'aurais cree un struct, puis fait un tableau de cette struct.
 
En php il n'y a pas de "struct" (a moins que le je les ai rates). Donc tu dois creer un objet (ou classe)

Code :
  1. <?php
  2. class Stat {
  3.   var $id_membre;
  4.   var $rang;
  5.   function Stat($id_membre, $rang) {
  6.     $this->id_membre=$id_membre;
  7.     $this->rang = $rang;
  8.   }
  9.   function cmp($a, $b) {
  10.      if ($a->rang == $b->rang) {
  11.          return 0;
  12.      }
  13.      return ($a->rang < $b->rang) ? -1 : 1;
  14.   }
  15. }
  16. ?>


 
Et pour l'utilisation :

Code :
  1. <?php
  2. $stats = new Array();
  3. while ($liste = mysql_fetch_object($rst)) {
  4.   stats[] = new Stat($liste->id_membre, $liste->mon_rang);
  5. }
  6. usort($stats, array('Stat', 'cmp'));
  7. ?>


Message édité par cerel le 30-04-2005 à 23:16:58
Reply

Marsh Posté le 01-05-2005 à 09:00:35    

J'ai trouvé une solution alternative un peu bourrin hier soir mais je trouve ton code très intéressant, moi qui me demandait dans quel cadre j'aurai besoin d'utiliser des objets.
 
Merci beaucoup en tout cas.

Reply

Sujets relatifs:

Leave a Replay

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