array_multisort() 함수는 PHP에서 사용되는 여러 개의 배열을 동시에 정렬하는 함수입니다. 이 함수는 주어진 배열들을 정렬하고 원래 배열의 인덱스를 유지하며, 정렬된 결과를 반환합니다.
다음은 array_multisort() 함수의 구문입니다.
array_multisort(array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]]): bool
- &$array1: 정렬할 첫 번째 배열입니다. 이 배열은 참조로 전달되므로 원래 배열이 수정됩니다.
- $array1_sort_order (옵션): 첫 번째 배열의 정렬 순서를 지정합니다. SORT_ASC (오름차순) 또는 SORT_DESC (내림차순) 상수를 사용합니다. 기본값은 SORT_ASC입니다.
- $array1_sort_flags (옵션): 첫 번째 배열의 정렬 방식을 지정합니다. SORT_REGULAR (일반 정렬), SORT_NUMERIC (숫자 정렬), SORT_STRING (문자열 정렬), SORT_LOCALE_STRING (로캘 문자열 정렬) 등의 상수를 사용합니다. 기본값은 SORT_REGULAR입니다.
- $... (옵션): 추가로 정렬할 배열들입니다. 첫 번째 배열과 동일한 정렬 순서와 정렬 방식이 적용됩니다.
예를 들어, 우리가 학생들의 정보를 담은 배열을 가지고 있다고 가정해봅시다. 각 학생은 이름, 나이, 성적을 가지고 있습니다. 우리는 이 배열을 성적순으로 정렬하고자 합니다. 이때 array_multisort() 함수를 사용할 수 있습니다.
$students = array(
array('name' => 'John', 'age' => 20, 'grade' => 'B'),
array('name' => 'Jane', 'age' => 22, 'grade' => 'A'),
array('name' => 'Bob', 'age' => 21, 'grade' => 'C'),
);
// 성적을 기준으로 내림차순으로 정렬
$grades = array_column($students, 'grade');
$ages = array_column($students, 'age');
array_multisort($grades, SORT_DESC, $ages, $students);
print_r($students);
// 출력
Array
(
[0] => Array
(
[name] => Jane
[age] => 22
[grade] => A
)
[1] => Array
(
[name] => John
[age] => 20
[grade] => B
)
[2] => Array
(
[name] => Bob
[age] => 21
[grade] => C
)
)
위의 예시에서는 $students 배열을 array_multisort() 함수로 정렬합니다. 먼저, array_column() 함수를 사용하여 $students 배열에서 grade 열과 age 열의 값을 추출합니다. 그런 다음, array_multisort() 함수를 사용하여 grade 열을 내림차순으로, 그리고 age 열을 같이 정렬합니다. 이렇게 하면 성적순으로 학생들이 정렬되고, 동일한 성적을 가진 학생들은 나이를 기준으로 정렬됩니다.
이처럼 array_multisort() 함수는 다차원 배열에서 여러 개의 열(column)을 동시에 정렬하는 데 사용될 수 있습니다. 데이터를 현실적인 상황에 맞게 정렬할 수 있으며, 필요에 따라 정렬 우선순위를 지정할 수 있습니다.
'PROGRAMMING > PHP' 카테고리의 다른 글
Laravel SQL로그 출력 로그 확인 (0) | 2023.07.11 |
---|---|
PHP array_chunk() 배열 나누기 (0) | 2023.07.10 |
PHP array_column() 다차원 배열 키로 값 추출 (0) | 2023.07.07 |
PHP array_rand() 배열 랜덤 추출 (0) | 2023.07.07 |
PHP array_replace() 배열 결합하기 중복제거 (0) | 2023.07.07 |
댓글