如何在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…"
}
答案 0 :(得分:12)
您无法对对象进行排序,因为属性中没有顺序。
但是,您可以对对象的数组表示形式进行排序:
$arr = (array)$object;
shuffle($arr);
答案 1 :(得分:0)
由于您使用$ items作为数组,因此要使$this->getItems()
返回一个数组,或使用get_object_vars($items)
来获取对象变量数组。