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 array sur plusieurs niveaux


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Expert technique
    Inscrit en
    Septembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert technique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 328
    Par défaut Trier un array sur plusieurs niveaux
    Bonjour,

    Je galère pour coder le tri d'un array. Voici l'array:
    Code : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    (
      [1] => array
        (
          [toto] => array
            (
              [0] => Array
                (
                   [0] => Array
                     (
                        [name] => Pierre
                        [date] => 5 novembre 1982
                     )
                )
           )
        )
      [2] => array
        (
          [tata] => array
            (
              [0] => Array
                (
                   [0] => Array
                     (
                        [name] => Amandine
                        [date] => 10 fevrier 1980
                     )
                )
           )
        )
    )
    Bon, il est pourri cet array, mais malheureusement je le récupère tel quel d'un webservice que je ne maîtrise pas.
    Je voudrai le trier par "name". Actuellement l'affichage des infos de cet array fonctionne, mais n'est pas trié.

    Donc l'idée est de le trier en gardant la même structure pour que la fonction qui génère l'affichage ne soit pas pommée.
    J'ai essayé avec les fonctions ksort, asort etc, mais je dois mal m'y prendre car php me dit que je luis passe un string alors qu'il attend un array. Je pensais juste faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monArray = ksort(monArray);
    Bref, je suis pommé du fait que l'array soit imbriqué sur x niveau. Une petite aide serait la bienvenue

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Si tu es sûr de la structure de l'array, tu peux écrire ta propre fonction de comparaison et l'utiliser avec usort ou uasort si les clés du 1er niveau sont importantes.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre éclairé
    Profil pro
    Expert technique
    Inscrit en
    Septembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert technique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 328
    Par défaut
    oui j'ai vu que usort permet d'apeller une fonction en callback et qui doit renvoyer 0, 1 ou -1.
    La structure de l'array est certaine. Elle sera toujours de ce type.

    Il faut juste que je prenne du temps pour me casser la tête pour créer la fonction callback.

Discussions similaires

  1. [SQL] Affichage sur plusieurs niveaux
    Par oim dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 10/12/2007, 14h52
  2. [Hibernate] Héritage sur plusieurs niveaux
    Par srvremi dans le forum Hibernate
    Réponses: 2
    Dernier message: 31/05/2006, 18h39
  3. [Access] Trier une table sur plusieurs critères
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 6
    Dernier message: 02/05/2006, 19h18
  4. trier un stringgrid sur plusieurs colonnes
    Par renegade55 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 13/12/2005, 16h30
  5. [XSLT] - Trier un fichier sur plusieurs critères
    Par ytse dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 11/10/2005, 16h26

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