날짜별로 개체 배열 정렬
PHP에서는 특정 속성별로 개체 배열을 정렬해야 하는 경우가 종종 있습니다. 예를 들어 날짜 필드와 같은 것입니다. 이를 통해 데이터를 시간순으로 표시하거나 조작할 수 있습니다.
날짜별 개체 재정렬
다음 개체 배열을 고려하세요. 여기서 각 개체는 다음과 같은 레코드를 나타냅니다. 날짜 속성:
<code class="php">$array = [ 495 => (object)['date' => '2009-10-31 18:24:09'], 582 => (object)['date' => '2010-2-11 12:01:42'], ];</code>
이러한 객체를 날짜 속성에 따라 오름차순(가장 오래된 것부터)으로 정렬하려면 strtotime() 함수와 usort() 함수를 활용하면 됩니다.
사용자 정의 비교 함수
usort()를 사용하려면 날짜 속성을 기준으로 두 객체를 비교하는 사용자 정의 비교 함수를 정의해야 합니다. 다음 코드는 두 번째 객체 날짜의 타임스탬프에서 첫 번째 객체 날짜의 타임스탬프(strtotime()을 사용하여 변환됨)를 빼는 함수를 정의합니다.
<code class="php">function cb($a, $b) { return strtotime($a['date']) - strtotime($b['date']); }</code>
usort()를 사용하여 배열 정렬
비교 함수가 있으면 배열에서 usort()를 호출하여 비교 함수를 두 번째 인수로 전달할 수 있습니다.
<code class="php">usort($array, 'cb');</code>
예
이전의 예제 배열을 사용하면 결과 정렬 배열은 다음과 같습니다.
<code class="php">[ 495 => (object)['date' => '2009-10-31 18:24:09'], 582 => (object)['date' => '2010-2-11 12:01:42'], ]</code>
PHP 5.3 이상
PHP 5.3의 경우 이상에서는 더 간단한 익명 함수를 비교 함수로 사용할 수 있습니다.
<code class="php">usort($array, function($a, $b) { return strtotime($a['date']) - strtotime($b['date']); });</code>
이 접근 방식은 이전 접근 방식과 동일한 정렬 결과를 얻습니다.
위 내용은 PHP에서 날짜별로 개체 배열을 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!