@mozillla

Как в php перемешать arrayObject?

Есть коллекция основанная на arrayObject

<?php
/**
 * Created by PhpStorm.
 * User: mozil
 * Date: 07-Nov-18
 * Time: 11:19
 */

namespace Main\Entity\EntityCollection;


abstract class CollectionOfEntity extends \ArrayObject
{
    private $className;

    public function __construct(string $className)
    {
        $this->className = $className;
        parent::__construct([], \ArrayObject::STD_PROP_LIST);
    }

    public function offsetSet($offset, $value)
    {
        if (!is_object($value) || !is_a($value, $this->className)) {
            throw new Exception('object must be a ' . $this->className);
        }
        parent::offsetSet($offset, $value);

    }

}


Есть необходимость перемешать такую коллекцию. shuffle её не переваривает
Warning: shuffle() expects parameter 1 to be array, object given

Я использовал arrayObject в надежде на максимальную совместимость с функциями для работы с массивами, но надежды не оправдались. Как вариант, приму совет, как по-другому организовать коллекцию.
  • Вопрос задан
  • 174 просмотра
Пригласить эксперта
Ответы на вопрос 1
а что если:

$arItems = (array)$collection;
shuffle($arItems);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы