Comment accéder facilement à un élément d'un tableau d'objets?

takinelinfo Messages postés 13 Date d'inscription mardi 24 avril 2007 Statut Membre Dernière intervention 1 juillet 2008 - 9 avril 2008 à 01:07
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 9 avril 2008 à 01:46
Bonjour,
J'ai une toute petite question.
Imaginons un tableau d'objet. Mon objet possede entre autre un attribut "id", "libelle" etc...
Je fais donc un truc du genre,

<?php
$tabMot=$liste->getAllMot();
?>

Comment puis je récupérer le libelle d'un mot dont je connais l'id? Suis je obligé de faire un foreach? J'espère que non!!!
Bien entendu $tabMot['id'] ne marche pas puisque c'est un tableau d'objet. C'est à dire que:

$tabMot[0] contient un mot qui a 1 id et 1 libelle
$tabMot[1] contient un mot qui a 1 id et 1 libelle
.......

Merci d'avance

1 réponse

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
9 avril 2008 à 01:46
Hello,

en l'état, si, tu vas être obligé.
Tu devrais plutôt modifier le comportement de ton objet "liste".
Un exemple à la con (je ne connais pas ton code, et je n'avais pas envie de faire trop compliqué...mais disons qu'avec la SPL, tu pourrais arriver à un truc très joli):
<?php
class mot {
    public $id;
    public $nom;
   
    public function __construct($iId) {
        $this->id = $iId;
        $this->nom = chr($this->id+64);
    }
}

class liste {
    public function getAllMots() {
        for($i = 1; $i < 10; $i++) {
            $oTmp = new mot($i*2);
            $aTab[$oTmp->id] = $oTmp;
        }
        return $aTab;
    }
}
$liste = new liste;
$aMots = $liste->getAllMots();
echo $aMots[4]->nom;
?>
0