IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] Comment trié un array avec plus de 3 key?


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 80
    Points
    80
    Par défaut [Tableaux] Comment trié un array avec plus de 3 key?
    Je suis un peu géné de poser une question pareil mais après avoir cherché dans la doc et lu la description de toutes les fonctions de tri sur un array (et il y en a un packet), je n'ai pas trouvé de fonction qui effectuait un tri sur le tableau suivant:

    array('id'=>$id,'nick'=>$nick,'pts'=>$pts,'type'=>$type);


    Le tri s'effectuant biensure sur la clé 'pts' en descending


    Toutes les fonctions de tri ne tri qu'un tableau à une colonne.


    Merci,

  2. #2
    Membre habitué
    Avatar de thanathz
    Inscrit en
    Mars 2002
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 147
    Points : 178
    Points
    178
    Par défaut
    regarde du coté de array_multisort !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par thanathz
    regarde du coté de array_multisort !

    multi sort n'est-il pas dédié aux tableaux contenant des tableaux?

  4. #4
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    euh :
    c est des tableaux tes variables ?
    c est un tableau a 2 dimensions ?

    montre ton code car la je comprend pas ce que tu veux faire.

    asort ne convient pas ?
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 80
    Points
    80
    Par défaut
    J'ai un tableau avec plusieurs colonnes et je veux trié ce tableau sur un colonne bien précise.

    Dans la doc, je n'ai pas trouvé de fonction qui demande d'indiquer la colonne sur laquelle il faut effecter le tri.


    asort prend un tableau en paramètre et un type de sort mais pas de de nom de colonne.

    Enfin j'ai pas vu ça dans la doc

  6. #6
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    dans ta colonne t as quoi ?
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  7. #7
    Membre habitué
    Avatar de thanathz
    Inscrit en
    Mars 2002
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 147
    Points : 178
    Points
    178
    Par défaut
    Citation Envoyé par vodnok
    Citation Envoyé par thanathz
    regarde du coté de array_multisort !

    multi sort n'est-il pas dédié aux tableaux contenant des tableaux?
    Comme son nom l'indique array_multisort est fait pour traiter des tableau à plusieurs dimensions...

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par siddh
    dans ta colonne t as quoi ?

    $tab=array('id'=>$id,'nick'=>$nick,'pts'=>$pts,'type'=>$type);


    Je voudrais trié ce tableau sur la colonne "pts"


    En d'autres termes, je souhait après exécution de la fonction de tri que la première ligne contienne la personne qui possède le plus de points et ainsi de suite.



    Je vais regarder encore plus multi_sort Mais a première vue j'avais pas vu cette fonctionne comme ça. Je ne veux pas trié sur plusieurs critères mais sur un seul.

  9. #9
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    y a quoi dans $pts ? un tableau, une chaine ?
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  10. #10
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    usort 8)

  11. #11
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    si t as un tableau dans $pts c est un multisort sinon ca rime a rien de trier sur une colonne
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par siddh
    si t as un tableau dans $pts c est un multisort sinon ca rime a rien de trier sur une colonne


    $tab=array('id'=>$id,'nick'=>$nick,'pts'=>$pts,'type'=>$type);


    C'est juste pour montrer la structure dans points il y a les points Un chiffre

    $tab=array();

    $tab1=array('id'=>1,'nick'=>'Michel','pts'=>125,'type'=>1);
    $tab2=array('id'=>2,'nick'=>'Robert','pts'=>252,'type'=>2);
    $tab3=array('id'=>2,'nick'=>'Abdel','pts'=>160,'type'=>2);

    array_push($tab,$tab1);
    array_push($tab,$tab2);
    array_push($tab,$tab3);

    ?????????????????????????
    $tab=fonction($tab) ou fonction($tab)
    ?????????????????????????

    Le résultat du tri sera un tableau avec les lignes dans cet ordre

    ('id'=>2,'nick'=>Robert,'pts'=>252,'type'=>2);
    ('id'=>2,'nick'=>'Abdel','pts'=>160,'type'=>2);
    ('id'=>1,'nick'=>Michel,'pts'=>125,'type'=>1);



    J'espère que c'est plus clair comme cela

    L'objectif de cela est de donner pour chaque personne son ranking.

  13. #13
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    Citation Envoyé par thanathz
    regarde du coté de array_multisort !
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  14. #14
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function compare($a, $b) {
       return $b['pts'] - $a['pts'];
    }
     
    var_dump($tab);
    usort ($tab, "compare");
    var_dump($tab);
    8)

  15. #15
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 091
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 091
    Points : 8 194
    Points
    8 194
    Billets dans le blog
    17
    Par défaut
    Vois usort( ) (bis)
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 80
    Points
    80
    Par défaut
    Je vais mettre à jour ma doc sur mon IDE car je viens de voir la fonction multi_sort sur le site de php et je n'ai pas tout les exemples donnés sur le site de php dans ma doc.



    En effet multi_sort fonctionnerait ainsi que usort avec la fonction compare.




    Merci beaucoup pour vos réponses,

  17. #17
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    il y a aussi des explications à ce sujet dans la FAQ :
    http://php.developpez.com/faq/?page=...ab_trimultidim

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. tri d'Array avec indice variable.
    Par GYK dans le forum Langage
    Réponses: 2
    Dernier message: 09/02/2011, 14h17
  2. [Joomla!] Comment faire un menu avec plus de 2 sous-menus ?
    Par sircus dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 11/02/2009, 18h52
  3. [Tableaux] Comment trier un array multidimensionel ?
    Par kaptnkill dans le forum Langage
    Réponses: 2
    Dernier message: 26/09/2006, 09h31
  4. [Tableaux] Comment ajouter/supprimer une entrée d'un array
    Par dessinateurttuyen dans le forum Langage
    Réponses: 7
    Dernier message: 09/08/2006, 16h05
  5. [Tableaux] Comment enlever les elements vide d'un array
    Par BernardT dans le forum Langage
    Réponses: 9
    Dernier message: 07/07/2006, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo