2009-12-13 5 views
2

Comment trier un objet en PHP? J'ai essayé shuffle() mais attend un tableau:Objets Shuffle en PHP

Warning: shuffle() expects parameter 1 to be array, 
object given in /var/www/index.php on line 366 

Warning: Invalid argument supplied for foreach() in /var/www/index.php on line 334 

Voici mon code:

public function updateStatusWithoutDB() { 
    $this->updateProfileColors(); 
    $items = $this->getItems(); 
    $items = shuffle($items); 
    if($this->updateStatusArray($items)) 
     return true; 
    return false; 
} 

A var_dump($items); renvoie cette:

["180"]=> 
    object(stdClass)#203 (1) { 
     ["status"]=> 
     string(130) "I was checking Microsoft's Visual Studio page just no…" 
    } 
+0

Que voulez-vous dire par "Trier un objet"? Le concept n'a aucun sens. –

+0

Pouvez-vous poster votre code? –

+0

hmm .. comment puis-je expliquer, un conteneur d'objet doit être trié au hasard – streetparade

Répondre

9

Vous ne pouvez pas trier un objet, car il n'y a commander dans les attributs.

Cependant, vous pouvez trier une représentation de tableau d'un objet:

$arr = (array)$object; 

shuffle($arr); 
+0

serait posible d'acces objets le? comme $ obj-> myvar? – streetparade

+0

si vous avez renvoyé le $ arr à un objet, alors oui. $ obj = (objet) $ arr; travaillerait. – RibaldEddie

+0

merci cela a fonctionné pour moi passer une bonne soirée – streetparade

0

Puisque vous utilisez des articles $ comme un tableau, soit faire $this->getItems() retour un tableau ou utiliser get_object_vars($items) pour obtenir ensemble des vars de l'objet.