Карен Мнацаканян, Интересный комментарий ) при том, что Вам дали один из двух возможных ответов - либо сортировать готовый массив (в Вашем случае usort подходит), либо сортировать при выборке из бд. В цикле сортировать массив невозможно.
Карен Мнацаканян, А теперь, посмотрите в доках функции usort, и сравните с кодом. usort принимает 2 параметра, первый - массив, второй - колбэк функция для сортировки. У Вас же второго параметра нет. Как его добавить есть в доках, или по ссылке, которую я скинул выше. Прям с Вашим примером. Единственное что в моем коде используется массив, а у Вас видимо объект. Как переписать код думаю поймете