usort
함수 설명과 샘플 코드
usort
함수는 배열에 사용자 지정 정렬 함수를 적용하여 배열을 정렬하는 함수입니다. 원본 배열을 변경하며, 정렬된 배열을 반환합니다. 다음 예제를 통해 usort
함수의 동작을 살펴봅시다.
<?php
$numbers = [5, 2, 8, 1, 9];
usort($numbers, function ($a, $b) {
return $a - $b;
});
print_r($numbers);
/*
출력:
Array
(
[0] => 1
[1] => 2
[2] => 5
[3] => 8
[4] => 9
)
*/
?>
위의 예제에서는 usort
함수를 사용하여 $numbers
배열을 오름차순으로 정렬합니다. 익명 함수를 사용하여 사용자 정의 정렬 기준을 정의하였습니다. print_r
함수를 사용하여 정렬된 배열을 출력합니다.
함수 사용 시 기본 전달 파라미터 설명과 코드
usort
함수는 두 개의 전달 파라미터를 가집니다.
- 배열: 정렬할 배열을 전달합니다. 이 배열은 원본 배열로서 정렬된 결과가 반영됩니다.
- 정렬 함수: 사용자 정의 정렬 함수를 전달합니다. 이 함수는 두 개의 인수를 가지고 있으며, 값을 비교하여 배열을 정렬합니다.
<?php
$numbers = [5, 2, 8, 1, 9];
usort($numbers, function ($a, $b) {
return $a - $b;
});
print_r($numbers);
?>
위의 예제에서는 usort
함수를 사용하여 $numbers
배열을 오름차순으로 정렬합니다. 익명 함수를 사용하여 사용자 정의 정렬 기준을 정의하였습니다. print_r
함수를 사용하여 정렬된 배열을 출력합니다.
다른 함수와 함께 응용하는 코드
<?php
$students = [
['name' => 'Alice', 'age' => 20],
['name' => 'Bob', 'age' => 18],
['name' => 'Charlie', 'age' => 22]
];
// 나이를 기준으로 내림차순으로 학생들을 정렬
usort($students, function ($a, $b) {
return $b['age'] - $a['age'];
});
foreach ($students as $student) {
echo $student['name'] . ' ';
}
// 출력: Charlie Alice Bob
?>
위의 예제에서는 usort
함수를 사용하여 $students
배열을 나이를 기준으로 내림차순으로 정렬합니다. 익명 함수를 사용하여 사용자 정의 정렬 기준을 정의하였습니다. foreach
반복문을 사용하여 정렬된 학생 이름을 출력합니다.
성능 향상을 위한 팁
- 정렬 함수 내에서 최적화된 비교 알고리즘을 사용하면 성능을 향상시킬 수 있습니다.
- 정렬할 배열의 크기가 매우 큰 경우,
usort
함수보다 다른 정렬 알고리즘을 사용하는 것이 더 효율적일 수 있습니다. 성능을 고려하여 적절한 정렬 알고리즘을 선택하세요.