Ответ 1
usort($array, function($a, $b) {
return strtotime($a['date']) - strtotime($b['date']);
});
Или если у вас нет PHP 5.3:
function cb($a, $b) {
return strtotime($a['date']) - strtotime($b['date']);
}
usort($array, 'cb');
Как я могу переупорядочить массив таких объектов:
[495] => stdClass Object
(
[date] => 2009-10-31 18:24:09
...
)
[582] => stdClass Object
(
[date] => 2010-2-11 12:01:42
...
)
...
ключом date
, самым старым первым?
usort($array, function($a, $b) {
return strtotime($a['date']) - strtotime($b['date']);
});
Или если у вас нет PHP 5.3:
function cb($a, $b) {
return strtotime($a['date']) - strtotime($b['date']);
}
usort($array, 'cb');
Поскольку исходный вопрос касается сортировки массивов объектов stdClass(), здесь код, который будет работать, если $a и $b являются объектами:
usort($array, function($a, $b) {
return strtotime($a->date) - strtotime($b->date);
});
Или если у вас нет PHP 5.3:
function cb($a, $b) {
return strtotime($a->date) - strtotime($b->date);
}
usort($array, 'cb');
Я хотел расширить ответ arnaud576875
. Я столкнулся с этой проблемой, но с помощью DateTime объектов. Вот как я смог выполнить одно и то же.
usort($array, function($a, $b) {
return $a['date']->format('U') - $b['date']->format('U');
});