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] Trier un tableau qui contient pleins de tableaux


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 9
    Points : 9
    Points
    9
    Par défaut [Tableaux] Trier un tableau qui contient pleins de tableaux
    Bonsoir, je cherche a trier un array qui contiens plusieurs array en fonction du parametre n°3 des différents tableaux
    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
    31
    32
    33
    34
    Array
    (
        [0] => Array
            (
                [0] => 1151
                [1] => pierre
                [2] => 2
                [3] => 5
            )
    
        [1] => Array
            (
                [0] => 2944
                [1] => paul
                [2] => 4
                [3] => 7
            )
    
        [2] => Array
            (
                [0] => 3344
                [1] => jack
                [2] => 1
                [3] => 1
            )
    
        [3] => Array
            (
                [0] => 3444
                [1] => Angie
                [2] => 3
                [3] =>9
            )
    }
    et je souhaite obtenir ceci...
    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
    31
    32
    33
    34
    35
    Array
    (
    
        [0] => Array
            (
                [0] => 3344
                [1] => jack
                [2] => 1
                [3] => 1
            )
    
        [1] => Array
            (
                [0] => 1151
                [1] => pierre
                [2] => 2
                [3] => 5
            )
    
        [2] => Array
            (
                [0] => 2944
                [1] => paul
                [2] => 4
                [3] => 7
            )
    
        [3] => Array
            (
                [0] => 3444
                [1] => Angie
                [2] => 3
                [3] =>9
            )
    }
    Mon but est de pouvoir classer selon les différents paramettre dans le tableaux.

  2. #2
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145

  3. #3
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Un trus sur des tableaux de tableaux est strictement identique a un tri sur des entier, des chaines, etc ....

    Trier un tableau de donnees c'est comparer les donnees et les deplacer en fonction du resultat de test.

    Ici la donnée est un tableau donc on deplace des tableaux. A noter qu'un tableaux n'est en fait qu'un entier designat l'adresse memoire a partir de laquelle le tableau est stocké. donc trier un tableau c'est trier des entiers.

    ensuite pour comparer, il suffit de tester la valeur choisie du tableau : T[i, 3]
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    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
    31
    32
    33
    34
    35
    36
    37
     
    <?php
        /**
        * @desc You really should validate the posted sort direction against a list of valid possibilities.
        *         Options are SORT_ASC, SORT_DESC, etc, as shown in the documentation for array_multisort
        */
        $sort['direction'] = $_POST['sort_direction'] ? $_POST['sort_direction'] : 'SORT_ASC';
        $sort['field']       = $_POST['sort_field'] ? $_POST['sort_field'] : 'value';
     
        $array_to_sort = array();   
        $array_to_sort['TestCase1'] = array('name'=>'Test1','value'=>'218');
        $array_to_sort['TestCase2'] = array('name'=>'Test2','value'=>'10');
        $array_to_sort['TestCase3'] = array('name'=>'Test3','value'=>'64');
     
        /**
        * @desc Build columns using the values, for sorting in php
        */
        $sort_arr = array();
        foreach($array_to_sort AS $uniqid => $row){
            foreach($row AS $key=>$value){
                $sort_arr[$key][$uniqid] = $value;
            }
        }
     
        print '<b>Before sorting</b>: <br> <pre>';
        print_r($array_to_sort);
        print '</pre>';
     
        if($sort['direction']){
            array_multisort($sort_arr[$sort['field']], constant($sort['direction']), $array_to_sort);
        }
     
        print '<b>After sorting</b>: <br> <pre>';
        print_r($array_to_sort);
        print '</pre>';
     
    ?>

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

Discussions similaires

  1. [Tableaux] création de tableau qui ne se fait pas
    Par mussara dans le forum Langage
    Réponses: 2
    Dernier message: 01/11/2006, 21h44
  2. [Tableaux] Trier un tableau
    Par johnstyle dans le forum Langage
    Réponses: 4
    Dernier message: 30/10/2006, 21h41
  3. [Tableaux] trier un tableau associatif
    Par cijez dans le forum Langage
    Réponses: 3
    Dernier message: 11/07/2006, 16h07
  4. [Tableaux] Trier un tableau [array]
    Par clemsouz dans le forum Langage
    Réponses: 2
    Dernier message: 15/05/2006, 13h33
  5. [Tableaux] Trier un tableau comme avec ORDER BY DESC
    Par Anduriel dans le forum Langage
    Réponses: 28
    Dernier message: 08/12/2005, 18h50

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