質問

どのように私は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)を使うようにしているので。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top