Пользовательская итерация для SplObjectStorage

Я хочу изменить способ итерации объекта SPLObjectStorage, например, сначала отсортировав его по данным (информация).

Таким образом, в цикле он идет численно от a до z (используя функцию sort ())

Но в SPLObjectStorage нет доступа к массиву, верно?

Возможно ли это сделать, поскольку у нас нет доступа к массиву объектов?

1

Решение

Нет, это невозможно. внутренне SplobjectStorage использовать ту же структуру данных, что и массив ( HashTable), но это не «массив-массив», как мы знаем из пользовательского пространства PHP: мы только добавляем значения, а не ключи, поскольку ключи на самом деле генерируются из значений путем их хеширования (вы можете даже перезаписать это, перезаписав getHash метод). Другое отличие состоит в том, что вы можете дополнительно добавить информацию к объекту.

Короче говоря, SplObjectStorage не следует использовать в качестве массива, но в качестве набора или карты в этом его сила.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]