Trier plusieurs tableaux multi-dimensionnels - PHP - Programmation
Marsh Posté le 09-06-2004 à 09:48:38
Code :
|
Il faut faire appel à une fonction utilisateur.
Si tu comprends pas le code ci-dessus dis-moi (http://fr2.php.net/manual/en/function.usort.php).
Marsh Posté le 09-06-2004 à 10:17:42
Code :
|
Merci ;-)
Dans ce code que tu ma donné, le pige pas trop la ligne return avec le "? -1"
Sa veut dire que si $a[PTS] est égal a $b[PTS], il retournera 0 et sinon il retourne quoi ?
1 ou -1 ?
Merci
Marsh Posté le 09-06-2004 à 10:47:06
Code :
|
Si $a['PTS'] < $b['PTS'] ca te retournera -1, sinon 1
c'est l'équivalent d'un If mais en une ligne :
[condition] ? [sivrai] : [sifaux]
Marsh Posté le 09-06-2004 à 11:13:46
C'est l'opérateur ternaire :
The expression (expr1) ? (expr2) : (expr3) evaluates to expr2 if expr1 evaluates to TRUE, and expr3 if expr1 evaluates to FALSE.
source(http://fr.php.net/manual/en/language.operators.comparison.php)
Marsh Posté le 09-06-2004 à 11:19:06
Aaaaaaaaaah bon !
Mhh intéressant, merci ;-)
J'espère pouvoir y arriver ...
Marsh Posté le 09-06-2004 à 11:19:50
apparement l'opérateur ternaire cai mal (en tout cas moins rapide que le if)
http://forum.hardware.fr/hardwaref [...] tm#t744486
Marsh Posté le 09-06-2004 à 11:56:25
Tu gagnes 5ms sur 10000 itérations
Je pense que c'est pas essentiel comme optimisation.
Perso j'utilise l'opérateur ternaire.
Marsh Posté le 09-06-2004 à 12:16:05
ratibus a écrit : Tu gagnes 5ms sur 10000 itérations |
eh mais ca fait quand meme 0.0005ms alors...
ben c pas négligeable.
ah tiens si...
naan mais j'aime pas la syntaxe je trouve que ca pourri le code en plus
Marsh Posté le 09-06-2004 à 14:14:05
vu le type de données utilisées, les tables doivent pas être très remplies ...
donc une requête SQL peut renvoyer le résultat déjà bien formaté rapidement
Je précise bien que ce n'est pas nécessaire, le tableau déjà rempli permet de le faire, mais franchement, si le volume de données est faible ... l'écriture de la requête prend 5 minutes
Marsh Posté le 09-06-2004 à 19:36:16
En effet, Beegee, je vais faire un p'tit update facile qui prend peu de temps ...
Je suis trop fatigué et trop dépité pour imaginer ma série de test dans une fonction
Merci encore à tous pour avoir éclairer ma lanterne éteinte
Marsh Posté le 09-06-2004 à 09:09:18
Salut à tous,
Depuis un moment j'ai fait un site web sur l'équipe suisse de foot et j'ai fait un classement pour l'euro ...
(un peu de pub, oui http://passionsuisse.free.fr )
Non, revenant-on au fait...
Moi j'ai fait une table avec mes équipes (Suisse, France, Croatie, Angleterre). Ensuite une table pour les match (Date, Stade, etc ...) et ensuite une pour les résultats (N° match, buteur, minute, etc ...).
Maintenant, affiche toutes ces infos, c'est facile
Il me reste un point, classer pas ordre de points
J'ai fait un tableau 2D :
$Pays[Suisse][MJ] (matchs joués)
$Pays[Suisse][V] (victoires)
$Pays[Suisse][PTS] (points)
etc ...
le même pour les autres équipes !
en somme g quatre tableaux, Suisse, France, Croatie, Angleterre !
$Pays[Suisse], $Pays[France], $Pays[Croatie], $Pays[Angleterre].
et chacun a : [MJ], [V], [N], [D], [BC], [BP], [PTS] ...
Voilà !
Ensuite j'aimerais bien trier ces tableaux par ordre décroissant de points ! Faire le classement quoi !
Comment fait-on ?
J'ai d'abord eu l'idée d'insérer cela dans une base, faire un UPDATE. Mais cela fera cette opération chaque fois qu'un utilisateur actualisera la page, donc pas très pratique en terme de fluidité, non ?
Ou alors j'ai aussi vu la fonction, array_multisort(SORT_DESC);
Mais bon, c'est pour un seul tableau !!
Merci beaucoup