我如何重新安排對象的這樣一個數組:排序對象數組按日期場
[495] => stdClass Object
(
[date] => 2009-10-31 18:24:09
...
)
[582] => stdClass Object
(
[date] => 2010-2-11 12:01:42
...
)
...
由date
關鍵,第一最古老的?
我如何重新安排對象的這樣一個數組:排序對象數組按日期場
[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');
我想對arnaud576875
的答案擴大。我遇到了同樣的問題,但是使用了DateTime對象。這就是我能夠完成同樣的事情。
usort($array, function($a, $b) {
return $a['date']->format('U') - $b['date']->format('U');
});
由於原來的問題是關於排序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');
這應該是正確的答案。 – devXen
看起來不錯,我建議你到OP做的日期/時間在數據庫中的排序,和/或格式化的值一起返回一個普通的UNIX時間戳,爲的strtotime()有可以考慮的開銷,並且會重複排序xpensive。 –
嗯..但它不保留舊的數字鍵.. – Nadine
用'uasort'替換'usort'然後 – arnaud576875