[résolu] PHP-Trier un tableau en fonction d'un critére perso

Lord_Coder
WRInaute discret
WRInaute discret
 
Messages: 243
Inscription: 15 Avr 2006

[résolu] PHP-Trier un tableau en fonction d'un critére perso

Message le Lun Juil 10, 2006 11:10

Bonjour à tous ,

j'ai par exemple la définition suivante du tableau $table :
Code: Tout sélectionner
<?php
$table[0]['nom']="David";
$table[0]['age']="18";
$table[1]['nom']="Bouazza";
$table[1]['age']="14";
$table[2]['nom']="Fred";
$table[2]['age']="16";
?>

Je voudrais en effet savoir comment trier le tableau par ordre décroissant en fonction de la valeur de l'élement age .

Merci beaucoup d'avance .
Dernière édition par Lord_Coder le Lun Juil 10, 2006 13:15, édité 2 fois.


mr_go
WRInaute passionné
WRInaute passionné
 
Messages: 1945
Inscription: 21 Sep 2005

Message le Lun Juil 10, 2006 11:18

Bonjour,

tu peux regarder vers la fonction array_multisort. ;)


Bacteries
WRInaute passionné
WRInaute passionné
 
Messages: 1369
Inscription: 27 Mai 2004

Message le Lun Juil 10, 2006 11:22

T'as la fonction sort() en PHP qui permet de trier un tableau, sur un tableau à deux dimensions je ne sais pas comment elle se comporte, à tester.
http://fr2.php.net/sort

Edit : ah bah me suis fais doublé et avec une solution mieux adaptées ;)


mr_go
WRInaute passionné
WRInaute passionné
 
Messages: 1945
Inscription: 21 Sep 2005

Message le Lun Juil 10, 2006 11:25

Et toc ! Pour une fois que c'est pas moi... Je jubile ! :p :D

Lord_Coder
WRInaute discret
WRInaute discret
 
Messages: 243
Inscription: 15 Avr 2006

Message le Lun Juil 10, 2006 11:29

mr_go a écrit:Bonjour,

tu peux regarder vers la fonction array_multisort. ;)

Merci pour ta réponse , elle marche nickel !
Bacteries a écrit:T'as la fonction sort() en PHP

Si je vais trier en faisant sort($table[$i]["age"]) à l'intérieur d'une boucle , beh ça ne va trier que l'élément age , et les données vont être "brouillées" .
Merci quand même pour ta réponse .

Lord_Coder
WRInaute discret
WRInaute discret
 
Messages: 243
Inscription: 15 Avr 2006

Message le Lun Juil 10, 2006 11:47

Rebonjour ,

est-il possible que la fonction array_multisort trie les autres clés selon la clé dans le premier paramétre en donnant la variable tableau directement dans le deuxiéme paramétre ?
En effet , je ne saurai pas combien de clés il y aura dans mon tableau...

EDIT : je veux simplement dire s'il est possible que la fonction ne nécessitera que la clé et le tableau à trier pour qu'elle trie automatiquement les autres clés .

Lord_Coder
WRInaute discret
WRInaute discret
 
Messages: 243
Inscription: 15 Avr 2006

Message le Lun Juil 10, 2006 12:09

Peut quelqu'un m'aider ?

theJB
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 411
Inscription: 7 Avr 2006

Message le Lun Juil 10, 2006 12:45

pour les tris exotiques avec php, regarde la fonction usort (php.net/usort).
avec elle tu peux définir toi même le critère de tri avec une fonction de comparaison f(a,b) que tu auras toi même défini.
Tu n'auras plus qu'à faire usort($mon_tab,ma_fonction_tri).

Lord_Coder
WRInaute discret
WRInaute discret
 
Messages: 243
Inscription: 15 Avr 2006

Message le Lun Juil 10, 2006 12:56

Merci beaucoup pour la réponse , je vais essayer ta fonction pour voir .

Lord_Coder
WRInaute discret
WRInaute discret
 
Messages: 243
Inscription: 15 Avr 2006

Message le Lun Juil 10, 2006 13:09

Salut ,

la fonction usort marche nickel !
je crois que j'ai compris comment définir l'ordre du tri , il suffit de remplacer < par > ou inversement dans le code suivant :
Code: Tout sélectionner
function compare($a, $b)
{
   if ($a['cle'] == $b['cle']) {
     return 0;
   }
   return ($a['cle'] > $b['cle']) ? -1 : 1;
}


Et merci beaucoup à tous les participants à cette discussion .

EDIT : comment faire un tag [résolu] ?


mr_go
WRInaute passionné
WRInaute passionné
 
Messages: 1945
Inscription: 21 Sep 2005

Message le Lun Juil 10, 2006 13:11

Edite ton premier message et marque [resolu]. On se la fait à l'ancienne sur WRI ! ;)

Lord_Coder
WRInaute discret
WRInaute discret
 
Messages: 243
Inscription: 15 Avr 2006

Message le Lun Juil 10, 2006 13:17

mr_go a écrit:Edite ton premier message et marque [resolu]. On se la fait à l'ancienne sur WRI ! ;)

Chose faite , en plus d'un changement du titre pour que ceux ayant la même question pourront trouver ce topic grâce à Google :P .


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités