> 백엔드 개발 > PHP 튜토리얼 > `array_multisort`를 사용하여 PHP에서 다차원 배열을 여러 열로 정렬하려면 어떻게 해야 합니까?

`array_multisort`를 사용하여 PHP에서 다차원 배열을 여러 열로 정렬하려면 어떻게 해야 합니까?

Patricia Arquette
풀어 주다: 2024-12-31 06:26:09
원래의
959명이 탐색했습니다.

How can I sort a multidimensional array in PHP by multiple columns using `array_multisort`?

여러 열로 다차원 배열 정렬

다차원 배열을 정렬하는 것은 어려운 작업일 수 있으며, 특히 여러 기준을 고려할 때 더욱 그렇습니다. 다행스럽게도 PHP는 array_multisort 함수 형태로 우아한 솔루션을 제공합니다.

다차원 배열을 정렬하려면 필요한 열을 추출하여 array_multisort에 전달해야 합니다. 각 열은 SORT_ASC 또는 SORT_DESC로 지정된 정렬 순서를 사용하여 독립적으로 정렬됩니다.

예를 들어 다음 입력 배열이 주어지면:

$array = [
    ['ID' => 1, 'title' => 'Boring Meeting',  'date_start' => '2010-07-30', 'event_type' => 'meeting', 'state' => 'new-york'],
    ['ID' => 2, 'title' => 'Find My Stapler', 'date_start' => '2010-07-22', 'event_type' => 'meeting', 'state' => 'new-york'],
    ['ID' => 3, 'title' => 'Mario Party',     'date_start' => '2010-07-22', 'event_type' => 'party',   'state' => 'new-york'],
    ['ID' => 4, 'title' => 'Duct Tape Party', 'date_start' => '2010-07-28', 'event_type' => 'party',   'state' => 'california']
];
로그인 후 복사

상태별로 정렬하려면 event_type, 마지막으로 date_start, 다음 코드를 사용합니다.

# extract columns
$state = array_column($array, 'state');
$event_type = array_column($array, 'event_type');
$date_start = array_column($array, 'date_start');

# sort by state desc, event_type asc, date_start asc
array_multisort($state, SORT_DESC, $event_type, SORT_ASC, $date_start, SORT_ASC, $array);
로그인 후 복사

PHP 5.5.0에서는 단순화된 array_column을 사용하는 구문:

array_multisort(
    array_column($array, 'state'), SORT_DESC,
    array_column($array, 'event_type'),      SORT_ASC,
    $array
);
로그인 후 복사

결과적으로 정렬된 배열은 다음과 같습니다.

[
    ['ID' => 4, 'title' => 'Duct Tape Party', 'date_start' => '2010-07-28', 'event_type' => 'party',   'state' => 'california'],
    ['ID' => 3, 'title' => 'Mario Party',     'date_start' => '2010-07-22', 'event_type' => 'party',   'state' => 'new-york'],
    ['ID' => 2, 'title' => 'Find My Stapler', 'date_start' => '2010-07-22', 'event_type' => 'meeting', 'state' => 'new-york'],
    ['ID' => 1, 'title' => 'Boring Meeting',  'date_start' => '2010-07-30', 'event_type' => 'meeting', 'state' => 'new-york'],
];
로그인 후 복사

array_multisort를 활용하여 여러 열을 기반으로 다차원 배열을 효과적으로 정렬하여 유연한 배열을 제공합니다. 데이터 정리 및 검색을 위한 강력한 솔루션입니다.

위 내용은 `array_multisort`를 사용하여 PHP에서 다차원 배열을 여러 열로 정렬하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿