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 de tableau multi-dimentionnel


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 47
    Par défaut [Tableaux] Tri de tableau multi-dimentionnel
    Bonjour,
    J'ai un problème pour trier mon tableau multi-dimentionnel. Je me tourne donc vers vous pour avoir un peu d'aide...
    Mon tableau sert à réaliser un classement. Je souhaite donc l'ordonner avec le nombre de points décroissant, puis la différence (dif) décroissante aussi.

    Mon tableau est de la forme :

    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
    $class = Array
    (
        [1] => Array
            (
                [nom] => Equipe_1
                [jou] => 1
                [vic] => 1
                [nul] => 0
                [def] => 0
                [pts] => 4
                [bp] => 3
                [bc] => 1
                [dif] => 2
            )
     
        [2] => Array
            (
                [nom] => Equipe_2
                [jou] => 1
                [vic] => 0
                [nul] => 0
                [def] => 1
                [pts] => 1
                [bp] => 1
                [bc] => 3
                [dif] => -2
            )
     
        [3] => Array
            (
                [nom] => Equipe_3
                [jou] => 1
                [vic] => 0
                [nul] => 1
                [def] => 0
                [pts] => 2
                [bp] => 1
                [bc] => 1
                [dif] => 0
            )
         etc...
    J'ai bien essayé d'utiliser la fonction array_multisort() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array_multisort($class[]["pts"], SORT_DESC, $class[]["dif"], SORT_DESC, $class);
    mais ça ne fonctionne pas...

    Merci d'avance !

  2. #2
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    Avec uasort(), ça doit être possible ?
    J'ai commencé pour ordonner avec le nombre de points décroissants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function comp_pts($x,$y) {
    	if ($x['pts'] > $y['pts']) return -1;
    	return 1;
    }
     
    usort($class,"comp_pts");
    Fred

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 47
    Par défaut
    Merci beaucoup !
    Voici la fonction complete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function comp_pts($x,$y) {
    	if ($x['pts'] > $y['pts'])
    		return -1;
    	elseif($x['pts'] == $y['pts']){
    		if($x["dif"] > $y["dif"])
    			return -1;
    		else
    			return 1;
    	}
    	else
    		return 1;
    }

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

Discussions similaires

  1. [Tableaux] Tri de tableau
    Par winnie82 dans le forum Langage
    Réponses: 8
    Dernier message: 25/07/2006, 11h32
  2. [Tableaux] Tri de tableau
    Par BenoitDenis dans le forum Langage
    Réponses: 34
    Dernier message: 14/04/2006, 11h37
  3. [Tableaux] Tri de tableau
    Par BenoitDenis dans le forum Langage
    Réponses: 16
    Dernier message: 27/02/2006, 16h32
  4. [Tableaux] tri de tableau deux dimensions
    Par oursquetaire dans le forum Langage
    Réponses: 8
    Dernier message: 27/12/2005, 15h27
  5. [Tableaux] tri de tableau
    Par rdams dans le forum Langage
    Réponses: 19
    Dernier message: 08/11/2005, 14h46

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