質問
どのように私はPHPでオブジェクトを並べ替えることができますか?私はshuffle()
を試してみましたが、それは、配列を期待します:
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
これは私のコードです:
public function updateStatusWithoutDB() {
$this->updateProfileColors();
$items = $this->getItems();
$items = shuffle($items);
if($this->updateStatusArray($items))
return true;
return false;
}
var_dump($items);
はこれを返します:
["180"]=>
object(stdClass)#203 (1) {
["status"]=>
string(130) "I was checking Microsoft's Visual Studio page just no…"
}
解決
の属性には順序がありませんので、あなたは、オブジェクトを並べ替えることができません。
しかし、あなたがオブジェクトの配列表現を並べ替えることができます:
$arr = (array)$object;
shuffle($arr);
他のヒント
あなたは配列として$の項目を使用して、どちらか$this->getItems()
は、配列を返すか、オブジェクトのVARSの配列を取得するためにget_object_vars($items)
を使うようにしているので。
所属していません StackOverflow