par
Shuugeki » 16 sept. 2010, 17:49
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.
Bonjour, j'ai besoin de classer un tableau qui est créé ainsi :
[code]//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';
}
[/code]
(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) :
[list]pvpstats(00002)
pvpstats(00007)
pvpstats(34215)
pvpstats(35361)[/list]
Et on a donc aussi par exemple :
pvpstats[char_id](nom,guild_id,sex,class,tues,mort) :
[list]pvpstats[34215](Bob,154,M,4016,5,2)
pvpstats[char_id](Cam,154,F,4001,4,0)[/list]
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.