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 :

Trier un tableau multi-dimensionnel [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 84
    Points : 80
    Points
    80
    Par défaut Trier un tableau multi-dimensionnel
    Bonjour,

    Je dispose d'un tableau de la sorte :
    $_SESSION['personnes'][$i]['prenom'];
    $_SESSION['personnes'][$i]['nom'];
    $_SESSION['personnes'][$i]['age'];
    $_SESSION['personnes'][$i]['etc'];
    Par exemple :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?php
    $_SESSION['personnes'][0]['prenom'] = 'Jean';
    $_SESSION['personnes'][0]['nom'] = 'Dupont';
    $_SESSION['personnes'][0]['age'] = 32;
    $_SESSION['personnes'][0]['etc'] = 'etc';
     
    $_SESSION['personnes'][1]['prenom'] = 'Patrick';
    $_SESSION['personnes'][1]['nom'] = 'Alberville';
    $_SESSION['personnes'][1]['age'] = 43;
    $_SESSION['personnes'][1]['etc'] = 'etc';
     
    $_SESSION['personnes'][2]['prenom'] = 'Etienne';
    $_SESSION['personnes'][2]['nom'] = 'Chocolat';
    $_SESSION['personnes'][2]['age'] = 26;
    $_SESSION['personnes'][2]['etc'] = 'etc';
     
    ...
    Avec $i allant de 0 au nombre de valeur (personnes) dans le tableau : count($_SESSION['personnes'])

    Comment faire pout trier ce tableau de telle sorte qu'il soit trier par ordre alphabétique en fonction des noms ?
    En prenant l'exemple du dessus, il faudrait qu'à la valeur 0 de $i il y ait Le nom 'Albertville', avec [0]['prenom'] = Patrick, etc.
    Et à la valeur 2 le nom 'Dupont', avec ses informations lui correspondant.

    J'espère m'être fait comprendre.
    Je vous remercie par avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Regarde la doc de array_multisort, il y a des exemples.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 84
    Points : 80
    Points
    80
    Par défaut
    Ca ne fait pas exactement ce que je souhaite, ou alors je n'arrive pas à m'en servir ...
    Je souhaite faire ceci :
    D'un tableau dans un ordre quelconque :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?php
    $_SESSION['personnes'][0]['prenom'] = 'Jean';
    $_SESSION['personnes'][0]['nom'] = 'Dupont';
    $_SESSION['personnes'][0]['age'] = 32;
    $_SESSION['personnes'][0]['etc'] = 'etc';
     
    $_SESSION['personnes'][1]['prenom'] = 'Patrick';
    $_SESSION['personnes'][1]['nom'] = 'Alberville';
    $_SESSION['personnes'][1]['age'] = 43;
    $_SESSION['personnes'][1]['etc'] = 'etc';
     
    $_SESSION['personnes'][2]['prenom'] = 'Etienne';
    $_SESSION['personnes'][2]['nom'] = 'Chocolat';
    $_SESSION['personnes'][2]['age'] = 26;
    $_SESSION['personnes'][2]['etc'] = 'etc';
    Le trier en fonction du Nom, tout en gardant chaque information relative à chaque personne dans l'index (0, 1, 2, ...)
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?php
    $_SESSION['personnes'][0]['prenom'] = 'Patrick';
    $_SESSION['personnes'][0]['nom'] = 'Alberville';
    $_SESSION['personnes'][0]['age'] = 43;
    $_SESSION['personnes'][0]['etc'] = 'etc';
     
    $_SESSION['personnes'][1]['prenom'] = 'Etienne';
    $_SESSION['personnes'][1]['nom'] = 'Chocolat';
    $_SESSION['personnes'][1]['age'] = 26;
    $_SESSION['personnes'][1]['etc'] = 'etc';
     
    $_SESSION['personnes'][2]['prenom'] = 'Jean';
    $_SESSION['personnes'][2]['nom'] = 'Dupont';
    $_SESSION['personnes'][2]['age'] = 32;
    $_SESSION['personnes'][2]['etc'] = 'etc';

    Une idée ?
    Car quand je trie par nom avec array_multisort, ça trie bien les noms, mais ça laisse les autres champs dans l'ordre initial, ainsi Albertville possède comme prénom Jean et non Patrick ...

    (PS :ne pas se fier au code même, c'est juste pour montrer l'association et le retour de tri désirés)

    Edit : j'ai trouvé !!
    J'ai suivi l'exemple #3 concernant la base de données, ça fonctionne parfaitement !

    Merci sabotage !

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

Discussions similaires

  1. [XL-2003] Faire un tableau multi-dimensionnel, pas facile (intégrer et trier)
    Par will-1981 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 03/11/2010, 16h17
  2. Trier un tableau multi-dimensionnel
    Par GYK dans le forum Langage
    Réponses: 7
    Dernier message: 04/05/2009, 19h40
  3. [Tableaux] Trier un tableau multi-dimensionnel associatif
    Par Oprichnik dans le forum Langage
    Réponses: 9
    Dernier message: 27/07/2007, 23h16
  4. [Tableaux] tri sur un tableau multi-dimensionnel
    Par nicoaix dans le forum Langage
    Réponses: 1
    Dernier message: 12/04/2006, 21h23
  5. Réponses: 4
    Dernier message: 24/08/2005, 14h09

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