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 :

[POO] Tri d'un tableau contenant des objets


Sujet :

Langage PHP

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    278
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 278
    Points : 284
    Points
    284
    Par défaut [POO] Tri d'un tableau contenant des objets
    Bonjour à tous, je voudrais savoir si il est possible de trier un tableau contenant des objets.
    Je ne sais pas si j'utilise les bon mot, donc mieux vaut un exemple qu'un long discourt

    Imaginons que je posséde un objet de type avion, pour accéder à la reference de l'avion je devrais donc faire un :
    Je stock tous mes avions dans un tableau, et la imaginons que je souhaite trier mon tableau par ordre numerique des references de mes avions un peu comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    asort($tabAvions->ref) // ne marche pas je sais
    Quelqu'un à une idée? Je vous remercie tous d'avance

  2. #2
    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
    Bonjour,

    Il faudrait effectivement être plus précis sur les termes ou bien détailler plus precisemment ce que tu fais actuellement dans ton code.

    Si je resume bien ton cas, tu as simplement un tableau un peu comme ca
    $avions=array(
    0=>array('ref'=>xxxxx, nom=>'yyyyy'),
    1=>array('ref'=>xxxxx, nom=>'yyyyy'),
    ....
    ))

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    278
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 278
    Points : 284
    Points
    284
    Par défaut
    Actuellement j'ai ça :

    fonction qui initialise les variables :
    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    function initialisation_variables (&$tabAv, &$tabEmp)
    	{
    	class avion
    		{
    		var $ref;
    		var $categ;
    		var $enVol;
    		}
     
    	class emplacement
    		{
    		var $num;
    		var $categMax;
    		var $occupe;
    		var $avion;
    		}
     
    	class categorie
    		{
    		var $ident;
    		var $libelle;
    		}
     
    	$c1 = new categorie;
    	$c2 = new categorie;
    	$c3 = new categorie;
     
    	$c1->ident="A";
    	$c2->ident="B";
    	$c3->ident="C";
     
    	$c1->libelle="transport prives";
    	$c2->libelle="transport passagers";
    	$c3->libelle="transport marchandises";
     
    	$a1 = new avion;
    	$a2 = new avion;
    	$a3 = new avion;
    	$a4 = new avion;
    	$a5 = new avion;
     
    	$e1 = new emplacement;
    	$e2 = new emplacement;
    	$e3 = new emplacement;
     
    	$a1->ref = "av1";
    	$a2->ref = "av2";
    	$a3->ref = "av3";
    	$a4->ref = "av4";
    	$a5->ref = "av5";
    	$a6->ref = "av6";
     
    	$a1->categ = $c1;
    	$a2->categ = $c2;
    	$a3->categ = $c2;
    	$a4->categ = $c3;
    	$a5->categ = $c3;
    	$a6->categ = $c2;
     
    	$a1->enVol=true;
    	$a2->enVol=true;
    	$a3->enVol=true;
    	$a4->enVol=true;
    	$a5->enVol=true;
    	$a6->enVol=true;
     
    	$e1->num = 1;
    	$e2->num = 2;
    	$e3->num = 3;
    	$e4->num = 4;
     
    	$e1->categMax = $c2;
    	$e2->categMax = $c1;
    	$e3->categMax = $c3;
    	$e4->categMax = $c2;
     
    	$e1->occupe = false;
    	$e2->occupe = false;
    	$e3->occupe = false;
    	$e4->occupe = false;
     
    	$tabAv[0] = $a1;
    	$tabAv[1] = $a2;
    	$tabAv[2] = $a3;
    	$tabAv[3] = $a4;
    	$tabAv[4] = $a5;
    	$tabAv[5] = $a6;
     
    	$tabEmp[0] = $e1;
    	$tabEmp[1] = $e2;
    	$tabEmp[2] = $e3;
    	$tabEmp[3] = $e4;
    	}
    J'ai donc par exemple le tableau $tabAv qui contient tout mes avions, si je veux afficher la reference d'un avion je fais donc un :
    Ce que je souhaite savoir c'est si je peux trier ce tableau avec pour argument de trie par exemple la ref, ainsi mon tableau serait trier par ordre de reference d'avion!

    C'est plus explicite?

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Avec usort :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function avion_ref_cmp($av1, $av2) {
         return strcmp($av1->ref, $av2->ref);
    }
     
    usort($tabAv, 'avion_ref_cmp');
     
    print_r($tabAv);

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    278
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 278
    Points : 284
    Points
    284
    Par défaut
    Merci beaucoup,

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

Discussions similaires

  1. Parcour d'un tableau contenant des objets
    Par Super_carotte dans le forum Langage
    Réponses: 6
    Dernier message: 09/12/2011, 16h40
  2. Tri sur plusieurs champs d'un tableau contenant des objets
    Par swampsnake dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 01/07/2011, 13h14
  3. [Tableaux] Tri de tableau contenant des objets
    Par erehcab dans le forum Langage
    Réponses: 10
    Dernier message: 07/10/2008, 19h22
  4. Tri d'un tableau contenant des heures;
    Par Bourak dans le forum Delphi
    Réponses: 3
    Dernier message: 27/07/2006, 12h57
  5. Réponses: 3
    Dernier message: 17/10/2005, 16h26

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