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 a deux dimension PHP


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 19
    Points : 15
    Points
    15
    Par défaut Tri d'un tableau a deux dimension PHP
    Bonjour à tous,
    Voila j'ai un tableau sous cette forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $tab[0][0]=$nb
    $tab[0][1]=$bla
    $tab[1][0]=$nb
    $tab[1][1]=$bla
    $tab[2][0]=$nb
    $tab[2][1]=$bla
    J'aimerais trier sur la colone $nb
    (Que tab[0][0] contienne le $nb le plus bas)
    Merci pour votre aide !

  2. #2
    Membre confirmé

    Homme Profil pro
    Chomeur
    Inscrit en
    Juin 2006
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chomeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 347
    Points : 452
    Points
    452
    Par défaut
    Bonjour,

    Quelque chose comme ça devrait faire l'affaire... Ca permet de construire un tableau ne contenant que les $nb qui va être trié et provoquer un tri identique parmi les éléments de $tab. $sort_flag permet d'orienter le tri. cf. http://www.php.net/manual/fr/functio...-multisort.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function objSort($objArray,$indexFunction,$sort_flags=1) {
    	$indices = array();
    	foreach($objArray as $obj) {
    		$indeces[] = $indexFunction($obj);
    	}
    	return array_multisort($indeces,$objArray,$sort_flags);
    }
    function getNb($obj) {
    	return $obj [0];
    }
     
    // appel
    objSort ( $tab, 'getNb' );
    Bon courage

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut utiliser array_multisort()

  4. #4
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    trier sur les valeurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $tab[0][0]=5;
    $tab[0][1]=4;
    $tab[1][0]=3;
    $tab[1][1]=2;
    $tab[2][0]=0;
    $tab[2][1]=1;
     
    print_r($tab);
     
    sort($tab);
     
    print_r($tab);
    avant le tri:
    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
    Array
    (
        [0] => Array
            (
                [0] => 5
                [1] => 4
            )
     
        [1] => Array
            (
                [0] => 3
                [1] => 2
            )
     
        [2] => Array
            (
                [0] => 0
                [1] => 1
            )
     
    )
    apres le tri
    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
    Array
    (
        [0] => Array
            (
                [0] => 0
                [1] => 1
            )
     
        [1] => Array
            (
                [0] => 3
                [1] => 2
            )
     
        [2] => Array
            (
                [0] => 5
                [1] => 4
            )
     
    )
    si c'est cela que tu veux faire.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Merci patrickbarras, ça marche niquel, et merci au autre.
    Bonne journée

  6. #6
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    De rien, n'oublie pas de marquer le sujet comme résolu.

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

Discussions similaires

  1. tri d'un tableau en deux dimension
    Par philippe6 dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 23/11/2010, 10h44
  2. Recuperer un tableau à deux dimensions PHP sous Javascript
    Par Archalia dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/01/2010, 12h44
  3. Réponses: 2
    Dernier message: 08/05/2009, 12h29
  4. Réponses: 6
    Dernier message: 26/11/2005, 20h55
  5. Réponses: 13
    Dernier message: 13/10/2005, 17h03

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