[php]usort

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 함수는 두 개의 전달 파라미터를 가집니다.

  1. 배열: 정렬할 배열을 전달합니다. 이 배열은 원본 배열로서 정렬된 결과가 반영됩니다.
  2. 정렬 함수: 사용자 정의 정렬 함수를 전달합니다. 이 함수는 두 개의 인수를 가지고 있으며, 값을 비교하여 배열을 정렬합니다.
<?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 함수보다 다른 정렬 알고리즘을 사용하는 것이 더 효율적일 수 있습니다. 성능을 고려하여 적절한 정렬 알고리즘을 선택하세요.

게시됨

카테고리

,

작성자