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 :

Tri d'un tableau de tableaux


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut Tri d'un tableau de tableaux
    Salut,

    j'ai un tableau sous la forme :

    Array
    (
    [0] => Array
    (
    [0] => 1 // Cet indice (1)
    [1] => 1 // Et celui là (2)
    [2] => 180.2.10101
    )

    [1] => Array
    (
    [0] => 1 // (1)
    [1] => 3 // (2)
    [2] => 0001652637
    )

    [2] => Array
    (
    [0] => 1 // (1)
    [1] => 2 // (2)
    [2] => 0001652637
    )

    )
    J'aimerai pouvoir trier ce tableau en fonction des tableaux contenu dans le tableau de manière croissante en fonction de (1) et (2) de manière croissante.

    Ce que je souhaite obtenir :
    Array
    (
    [0] => Array
    (
    [0] => 1 // Cet indice (1)
    [1] => 1 // Et celui là (2)
    [2] => 180.2.10101
    )

    [1] => Array
    (
    [0] => 1 // (1)
    [1] => 2 // (2)
    [2] => 0001652637
    )

    [2] => Array
    (
    [0] => 1 // (1)
    [1] => 3 // (2)
    [2] => 0001652637
    )

    )

    Possible?
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  2. #2
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Salut,

    array_multisort est ton ami !

  3. #3
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    En effet, même si je ne comprend pas trop ce qu'il nous fait

    J'ai utilisé SORT_NUMERIC_ASC et il me met les trie sauf par nombre ...

    Mais c'est bien la fonction que je recherche, en effet


    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  4. #4
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    personnellement, je comprend rien du tout à cette fonction donc pour les tri compliqués je préfère utiliser la fonction http://php.net/usort

    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
    38
    39
    40
    41
    42
    43
    44
    header('Content-type: text/plain');
     
    $t = Array
    (
    0 => Array
    (
    0 => 1, // Cet indice (1)
    1 => 1, // Et celui là (2)
    2 => '180.2.10101',
    ),
     
    1 => Array
    (
    0 => 2, // (1)
    1 => 3, // (2)
    2 => '0001652637',
    ),
     
    2 => Array
    (
    0 => 1, // (1)
    1 => 3, // (2)
    2 => '0001652637',
    ),
     
    ) ;
     
    echo "avant\n";
    print_r($t);
     
    usort($t, 'tri');
     
    echo "après\n";
    print_r($t);
     
     
    function tri($a, $b)
    {
        if ($a[0] == $b[0]) {
            return ($a[1] < $b[1]) ? -1 : 1;
        }
     
        return ($a[0] < $b[0]) ? -1 : 1;
    }

  5. #5
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Nickel


    à vous deux
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

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

Discussions similaires

  1. [Tableaux] Tri dans un tableau
    Par ssebuser dans le forum Langage
    Réponses: 11
    Dernier message: 12/12/2006, 20h29
  2. [Tableaux] Tri d'un tableau multi-dimensions
    Par lodan dans le forum Langage
    Réponses: 6
    Dernier message: 05/12/2006, 10h08
  3. Réponses: 1
    Dernier message: 03/09/2006, 18h53
  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: 7
    Dernier message: 10/03/2006, 19h09

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