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


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2009
    Messages : 51
    Par défaut Trier un tableau multidimentionel
    Salut,,

    stp, aideez moi ...

    comment je peux trier ce tableau sur la colonne distance (du plus petit au plus grand) avec la fonction : array_multisort

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $atab2 = array('0' => array('idcommune' =>'554', 'intitulecommune' =>'Alger', 'distance' =>'21.72590457681', 'intitulewilaya' =>'Alger'),
    '1' => array('idcommune' =>'555', 'intitulecommune' =>'Sidi Mhamed', 'distance' =>'20.298725942976', 'intitulewilaya' =>'Alger'),
    '2' => array('idcommune' =>'556', 'intitulecommune' =>'El Madania', 'distance' =>'19.283916396216', 'intitulewilaya' =>'Alger')
     
    );
    jai toute essayer genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    array_multisort($atab2['distance'],
    $atab2['intitulecommune'],
    $atab2['idcommune'],
    $atab2['intitulewilaya']
    );
    mais rien ne marche !!!!

    merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    on trouve une fonction ici : array-multisort() (exemple)
    Code php : 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
    $atab2 = array('0' => array('idcommune' =>'554', 'intitulecommune' =>'Alger', 'distance' =>'21.72590457681', 'intitulewilaya' =>'Alger'),
    '2' => array('idcommune' =>'556', 'intitulecommune' =>'El Madania', 'distance' =>'19.283916396216', 'intitulewilaya' =>'Alger'),
    '1' => array('idcommune' =>'555', 'intitulecommune' =>'Sidi Mhamed', 'distance' =>'20.298725942976', 'intitulewilaya' =>'Alger')
    );
    var_dump($atab2);
     
    // fonction de tri
    function array_orderby()
    {
        $args = func_get_args();
        $data = array_shift($args);
        foreach ($args as $n => $field) {
            if (is_string($field)) {
                $tmp = array();
                foreach ($data as $key => $row)
                    $tmp[$key] = $row[$field];
                $args[$n] = $tmp;
                }
        }
        $args[] = &$data;
        call_user_func_array('array_multisort', $args);
        return array_pop($args);
    }
    // Utilisation
    $sorted = array_orderby($atab2, 'distance', SORT_ASC);
    var_dump($sorted);

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2009
    Messages : 51
    Par défaut
    Merci merciiiiiiiiiiiii, sa marche trés bien

    je vais participé commaime avec un <hr/> pour séparer avant tri et apré trie
    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
     
    $atab2 = array('0' => array('idcommune' =>'554', 'intitulecommune' =>'Alger', 'distance' =>'21.72590457681', 'intitulewilaya' =>'Alger'),
    '2' => array('idcommune' =>'556', 'intitulecommune' =>'El Madania', 'distance' =>'19.283916396216', 'intitulewilaya' =>'Alger'),
    '1' => array('idcommune' =>'555', 'intitulecommune' =>'Sidi Mhamed', 'distance' =>'20.298725942976', 'intitulewilaya' =>'Alger')
    );
    var_dump($atab2);
     
    echo '<hr/>';
     
    // fonction de tri
    function array_orderby()
    {
        $args = func_get_args();
        $data = array_shift($args);
        foreach ($args as $n => $field) {
            if (is_string($field)) {
                $tmp = array();
                foreach ($data as $key => $row)
                    $tmp[$key] = $row[$field];
                $args[$n] = $tmp;
                }
        }
        $args[] = &$data;
        call_user_func_array('array_multisort', $args);
        return array_pop($args);
    }
    // Utilisation
    $sorted = array_orderby($atab2, 'distance', SORT_ASC);
    var_dump($sorted);

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

Discussions similaires

  1. [Débutant] Trier un tableau en 2 boucles
    Par SaladinDev dans le forum Assembleur
    Réponses: 9
    Dernier message: 07/05/2005, 22h38
  2. Trier un tableau par rapport à un autre tableau
    Par deaven dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 02/05/2005, 09h27
  3. [Débutant] Remplir et trier un tableau
    Par james-dean dans le forum Assembleur
    Réponses: 15
    Dernier message: 01/05/2005, 17h40
  4. Trier un tableau par ordre croissant
    Par Halleck dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 01/11/2004, 00h04
  5. trier un tableau et compter des elements du tableau
    Par remi51 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 17/06/2002, 16h51

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