2011-11-08 4 views
1

J'ai des objets tels que ceux-ci:Comment adapter/utiliser array_unique() pour gérer des objets?

class Log 
{ 
    public matches; 

    public function __construct() 
    { 
     $this->matches = array(); 
    } 
} 

class Match 
{ 
    public owner; 
    public stuff; 
} 

Tout au long de mon programme, je stocker des données dans $owner et $stuff et l'accès via itérer le tableau correspond à l'objet Log. Ce que je me demande, c'est comment obtenir un tableau contenant une liste de tous les propriétaires uniques.

Par exemple, si j'ai les informations suivantes:

Bill SomeStuff 
Bob SomeOtherStuff 
Stan MoreOtherStuff 
Bill MoreOfBillsStuff 
Bill BillhasLotsofStuff 

Comment puis-je obtenir un tableau qui contient simplement Bill, Bob, Stan?

+0

En créant un nouveau tableau, itérer puis sur le tableau matchs et seulement mettre ces entrées à la nouvelle tableau qui correspondent à ce que vous demandez. Vous pouvez aussi le faire avec un FilterIterator qui empêcherait la copie des données mais ne retournera pas un tableau mais un itérateur. - Mais quoi qu'il en soit, qu'avez-vous essayé jusqu'à présent, il semble assez simple ce que vous demandez si vous vous demandez où est votre problème. – hakre

Répondre

0

C'est un exemple de fonction que vous pouvez ajouter à la classe Log pour retourner une liste des propriétaires:

function getOwners() 
{ 
    $owners = array(); 
    foreach($this->matches as $match) 
    { 
     $owners[$match->owner] = 0; 
    } 

    return array_keys($owners); 
} 
+0

C'est exactement ce que je cherchais. Je suis encore relativement nouveau le PHP, donc je me demande parfois ce qui est et n'est pas possible. Cela fait exactement ce que j'ai besoin de faire. Gloire! –

Questions connexes