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 tableau associatif


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Par défaut [Tableaux] Tri d'un tableau associatif
    Bonjour a tou(te)s,
    Je cherche à trier un tableau associatif dans l'ordre alphabetique d'une de ses valeurs. Voici le tableau en question:
    Code X : 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
    (
        [0] => Array
            (
                [id] => 1
                [valeur] => Surveillance - AUDI
            )
        [1] => Array
            (
                [id] => 7
                [valeur] => Risque - SOLV
            )
        [2] => Array
            (
                [id] => 8
                [valeur] => Surveillance - VACC
            )
        [3] => Array
            (
                [id] => 9
                [valeur] => Surveillance - S000
            )
        [4] => Array
            (
                [id] => 13
                [valeur] => Pluridisciplinarité - VISO
            )
        [5] => Array
            (
                [id] => 6
                [valeur] => Risque - AMIA
            )
        [6] => Array
            (
                [id] => 11
                [valeur] => Pluridisciplinarité - P000
            )
        [7] => Array
            (
                [id] => 12
                [valeur] => Pluridisciplinarité - VISI
            )
    )
    Je voudrais le trier sur 'valeur', alors si quelqu'un connaît une méthode merci.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Par défaut
    usort je crois permet de faire ceci

  3. #3
    Membre émérite Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Par défaut
    Il suffit de lire le manuel ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Soit $array ton tableau
     
    asort($array); // Tri du tableau selon les valeurs
     
    ksort($array); // Tri du tableau selon les clés
    http://fr3.php.net/manual/fr/function.asort.php
    http://fr3.php.net/manual/fr/function.ksort.php

  4. #4
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Ce n'est pas si simple, il s'agit de trier un tableau de tableau.
    Pour ça il faut utiliser la fonction array_multisort(), mais elle ne fonctionne que sur des tableaux en colonnes. Il faut donc d'abord passer à des tableaux en colonnes, puis trier.
    Je te suggère le bout de code suivant (à adapter) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      $truc=array();
      foreach($array as $toto) {
       $truc[] = $toto[$coltri];
      }
     
      $ordre = "SORT_".$senstri;
      array_multisort($truc,constant($ordre), $array);

  5. #5
    Membre émérite Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function compare($a, $b)
    {
        return strcmp($a['valeur'], $b['valeur']);
    }
     
    usort($array, 'compare');

    Sa répond à ton besoin ?

Discussions similaires

  1. [Tableaux] Tri d'un tableau associatif à 2 dimensions
    Par phpiste dans le forum Langage
    Réponses: 2
    Dernier message: 31/10/2007, 10h24
  2. [Tableaux] Tri d'un tableau multi-dimensions
    Par lodan dans le forum Langage
    Réponses: 6
    Dernier message: 05/12/2006, 11h08
  3. [Tableaux] Boucle sur un tableau associatif
    Par alexfrere dans le forum Langage
    Réponses: 11
    Dernier message: 28/06/2006, 16h44
  4. [Tableaux] tri sur un tableau multi-dimensionnel
    Par nicoaix dans le forum Langage
    Réponses: 1
    Dernier message: 12/04/2006, 22h23
  5. Réponses: 7
    Dernier message: 10/03/2006, 20h09

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