在PHP中随机播放对象

时间:2009-12-13 20:48:30

标签: php object shuffle

如何在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…"
    }

2 个答案:

答案 0 :(得分:12)

您无法对对象进行排序,因为属性中没有顺序。

但是,您可以对对象的数组表示形式进行排序:

$arr = (array)$object;

shuffle($arr);

答案 1 :(得分:0)

由于您使用$ items作为数组,因此要使$this->getItems()返回一个数组,或使用get_object_vars($items)来获取对象变量数组。