objetos de reproducción aleatoria en PHP
Pregunta
¿Cómo puedo ordenar un objeto en PHP? Probé shuffle()
pero que espera una matriz:
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
Este es mi código:
public function updateStatusWithoutDB() {
$this->updateProfileColors();
$items = $this->getItems();
$items = shuffle($items);
if($this->updateStatusArray($items))
return true;
return false;
}
A var_dump($items);
vuelve este:
["180"]=>
object(stdClass)#203 (1) {
["status"]=>
string(130) "I was checking Microsoft's Visual Studio page just no…"
}
Solución
No se puede ordenar un objeto, ya que no hay orden en los atributos.
Sin embargo, puede ordenar una matriz como representación de un objeto:
$arr = (array)$object;
shuffle($arr);
Otros consejos
Desde que está utilizando $ artículos como una matriz, o bien hacer $this->getItems()
devolver una matriz o utilizar get_object_vars($items)
para obtener variedad de VARs de objetos.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow