어떻게 다시 정렬 할 수 있습니다이 같은 객체의 배열 다음 date
키에 의해정렬 배열
[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
...
)
...
, 오래된 먼저?
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 추천 및/또는 한 strtotime으로, 포맷 된 값과 함께 일반 유닉스 타임 스탬프를 반환 할 것()가 생각할 수있는 오버 헤드와 반복되는 정렬을 매우 전자 매우 비싸다. –
흠 ..하지만 이전의 숫자 키는 유지하지 않습니다. – Nadine
'usort'를'uasort'로 바꾼 다음 – arnaud576875