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] Tri d'un array multidimensionnel


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    février 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2006
    Messages : 94
    Points : 55
    Points
    55
    Par défaut [Tableaux] Tri d'un array multidimensionnel
    bonjour tout le monde

    je viens demander de l'aide ou tout du moins des pistes pour trier un tableau

    exemple de tableau :

    Array (
    [0] => Array ( [0] => lbl0 [1] => obj0 [2] => val0 )
    [1] => Array ( [0] => lbl1 [1] => obj1 [2] => val1 )
    [2] => Array ( [0] => lbl2 [1] => obj2 [2] => val2 )
    [3] => Array ( [0] => lbl3 [1] => obj3 [2] => val3 )
    [4] => Array ( [0] => lbl4 [1] => obj4 [2] => val4 )
    )

    et il faut que je trie dans l'ordre croissant en fonction de val0, val1, etc...
    exemple avec des valeurs :

    Array (
    [0] => Array ( [0] => lbl0 [1] => obj0 [2] => 28 )
    [1] => Array ( [0] => lbl1 [1] => obj1 [2] => 47 )
    [2] => Array ( [0] => lbl2 [1] => obj2 [2] => 32 )
    [3] => Array ( [0] => lbl3 [1] => obj3 [2] => 604 )
    [4] => Array ( [0] => lbl4 [1] => obj4 [2] => 1 )
    )

    dans cet exemple je dois me retrouver avec triage avec :

    Array (
    [0] => Array ( [0] => lbl3 [1] => obj3 [2] => 604 )
    [1] => Array ( [0] => lbl1 [1] => obj1 [2] => 47 )
    [2] => Array ( [0] => lbl2 [1] => obj2 [2] => 32 )
    [3] => Array ( [0] => lbl0 [1] => obj0 [2] => 28 )
    [4] => Array ( [0] => lbl4 [1] => obj4 [2] => 1 )
    )

    voilà... je sais pas trop comment faire

    merci de votre aide

  2. #2
    Membre averti Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : janvier 2008
    Messages : 374
    Points : 336
    Points
    336
    Par défaut
    personnellement ce que je fais quand je dois trier de cette manière, je stocke en 1er ce que je dois trier
    donc pour toi
    Array (
    [0] => Array ( [0] => 28 [1] => lbl0 [2] => obj0 )
    [1] => Array ( [0] => 47 [1] => lbl1 [2] => obj1 )
    [2] => Array ( [0] => 32 [1] => lbl2 [2] => obj2 )
    [3] => Array ( [0] => 604 [1] => lbl3 [2] => obj3 )
    [4] => Array ( [0] => 1 [1] => lbl4 [2] => obj4 )
    )

    et donc tu peux ensuite consulter toutes les méthodes de tri
    sort(), rsort() etc
    Pour voir qu'il fait noir, on n'a pas besoin d'être une lumière

  3. #3
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Il doit même y avoir moyen de construire ton tableau pour arriver à ça :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Array (
    [28] => Array ( [0] => 28  [1] => lbl0 [2] => obj0 )
    [47] => Array ( [0] => 47  [1] => lbl1 [2] => obj1 )
    [32] => Array ( [0] => 32  [1] => lbl2 [2] => obj2 )
    [604] => Array ( [0] => 604 [1] => lbl3 [2] => obj3 )
    [1] => Array ( [0] => 1    [1] => lbl4 [2] => obj4  )
    )
    après, pour le tri , c'est de la rigolade
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    février 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2006
    Messages : 94
    Points : 55
    Points
    55
    Par défaut
    bon merci à tous mais je viens de trouver... sans avoir à remodifier mon tableau (ce qui ne m'arrangeait pas pour la suite...)

    pour ceux qui veulent :

    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
     
    $data = array(
           "0" => array("0" => "lbl0", "1" => "obj0", "2" => "571"),
           "1" => array("0" => "lbl1", "1" => "obj1", "2" => "569"),
           "2" => array("0" => "lbl2", "1" => "obj2", "2" => "53"),
           "3" => array("0" => "lbl3", "1" => "obj3", "2" => "5600"),
           "4" => array("0" => "lbl4", "1" => "obj4", "2" => "170")
          );
     
    foreach ($data as $key => $row) {
        $volume[$key]  = $row['2'];
    }
     
    array_multisort($volume, SORT_DESC, $data);
     
    print_r($data);
    voili voilou

    ++

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

Discussions similaires

  1. [Tableaux] Récursivité array multidimensionnel
    Par yanice dans le forum Langage
    Réponses: 10
    Dernier message: 30/01/2008, 21h52
  2. Réponses: 2
    Dernier message: 04/11/2007, 09h43
  3. Réponses: 2
    Dernier message: 15/05/2007, 17h56
  4. [Tableaux] tri sur un tableau multidimensionnel
    Par maysa dans le forum Langage
    Réponses: 3
    Dernier message: 11/04/2007, 09h53
  5. Réponses: 9
    Dernier message: 11/08/2006, 22h58

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