Если есть массив объектов и необходимо его отсортировать по полю (или нескольким), то то для этого существует функция usort ([массив], callable функция).
Ниже описан пример сортировки массива объектов с помощью статического метода в классе объекта.
Использование:
usort($tickets, [Ticket::className(),'CompareByUpdateDateNewFirst']);
Код класса:
Class Ticket
{
/**
* @var DateTime
*/
protected $updateDate;
/**
* @return DateTime
*/
public function getUpdateDate() {
return $this->updateDate
}
/**
* @param self $a - compared instance
* @param self $b - compared instance
*
* @return int (0, 1 or -1)
*/
public static function CompareByUpdateDateNewFirst($a, $b) {
if ($a->getUpdateDate() == $b->getUpdateDate()) {
return 0;
}
return (($a->getUpdateDate() < $b->getUpdateDate())) ? 1 : -1;
}
}
1 комментарий
Необязательный параметр. Указывает функцию, определяющую порядок сортировки. Если опущен, массив сортируется в соответствии со значениями кодовых точек каждого символа Unicode , полученных путём преобразования каждого элемента в строку.