Page 1 sur 1

Classement de tableau multidimensionnel

Posté : 16 sept. 2010, 17:49
par Shuugeki
Bonjour, j'ai besoin de classer un tableau qui est créé ainsi :

Code : Tout sélectionner

//Boucle remplissage avec infos + PVPKill while ($pvpkill = mysql_fetch_array($frag)) { $pvpstats[$pvpkill['char_id']]['nom'] = $pvpkill['name']; $pvpstats[$pvpkill['char_id']]['guild_id'] = $pvpkill['guild_id']; $pvpstats[$pvpkill['char_id']]['sex'] = $pvpkill['sex']; $pvpstats[$pvpkill['char_id']]['class'] = $pvpkill['class']; $pvpstats[$pvpkill['char_id']]['tues'] = $pvpkill['tues']; $pvpstats[$pvpkill['char_id']]['mort']='0'; } //Boucle rajoutant PVPDeath à chaque ligne ayant des kills while ($pvpdeath = mysql_fetch_array($death)) { $pvpstats[$pvpdeath['char_id']]['nom'] = $pvpdeath['name']; $pvpstats[$pvpdeath['char_id']]['guild_id'] = $pvpdeath['guild_id']; $pvpstats[$pvpdeath['char_id']]['sex'] = $pvpdeath['sex']; $pvpstats[$pvpdeath['char_id']]['class'] = $pvpdeath['class']; $pvpstats[$pvpdeath['char_id']]['mort'] = $pvpdeath['mort']; if (!$pvpstats[$pvpdeath['char_id']]['tues']) $pvpstats[$pvpdeath['char_id']]['tues']='0'; }
(Excusez moi si ça n'est pas très clair, j'essaierai de donner plus d'informations si besoin)

char_id est un INT n'étant pas nécessairement le précédent +1, il peut n'avoir aucun rapport. Je suis obligé de le garder comme clé pour pouvoir ajouter la 2eme requète à ce tableau.

Un exemple :
On a pvpstats(char_id) :
  • pvpstats(00002)
    pvpstats(00007)
    pvpstats(34215)
    pvpstats(35361)
Et on a donc aussi par exemple :
pvpstats[char_id](nom,guild_id,sex,class,tues,mort) :
  • pvpstats[34215](Bob,154,M,4016,5,2)
    pvpstats[char_id](Cam,154,F,4001,4,0)
J'espère que je suis assez clair pour la structure.

Mon objectif et de classer ce tableau par ordre de pvpstats[char_id] 'tues' par ordre descendant.
Je n'ai pas trouvé de fonction pour le faire, ou alors je n'ai pas trouvé la bonne syntaxe pour le arsort.

Je vous remercie d'avance !

Edit : J'ai évidemment pensé à faire un classement "manuel" avec un algorythme de tri à bulles... Mais j'aurai aimé savoir si une fonction peut le faire, pour éviter de remettre l'algo à chaque fois.

Re: Classement de tableau multidimensionnel

Posté : 17 sept. 2010, 06:56
par xTG
Je ne connais pas de fonction toute faite te le faisant. Mais ce n'est pas pour rien que les fonctions de tri de PHP permettent de passer ta propre fonction de tri en paramètre. :)
http://php.net/usort