PHP: как я могу сортировать и фильтровать «массив», то есть объект, реализующий ArrayAccess?

У меня есть объект, который представляет собой набор объектов, которые ведут себя как массив. Это объект результата базы данных. Что-то вроде следующего:

$users = User::get(); foreach ($users as $user) echo $user->name . "\n"; 

Переменная $users – это объект, который реализует интерфейсы ArrayAccess и ArrayAccess .

Я хотел бы сортировать и фильтровать этот «массив», но я не могу использовать функции массива на нем:

 $users = User::get(); $users = array_filter($users, function($user) {return $user->source == "Twitter";}); => Warning: array_filter() expects parameter 1 to be array, object given 

Как я могу сортировать и фильтровать этот вид объекта?