
usort 함수를 사용하여 배열을 정렬할 때, 사용자 정의 비교 함수를 작성하는 방법은 다음과 같습니다.
usort 함수의 두 번째 인자로, 비교 함수를 전달합니다. 비교 함수는 두 개의 배열을 인수로 받고, 정렬 순서를 반환합니다.
예를 들어, 이름을 기준으로 정렬하고 싶다면, 다음과 같이 비교 함수를 작성할 수 있습니다.
#hostingforum.kr
php
usort($students, function($a, $b) {
return strcmp($a['이름'], $b['이름']);
});
이 코드는 이름이 동일한 경우에도 오류가 발생하지 않습니다. strcmp 함수는 문자열을 비교할 때, 0이면 동일한 문자열, 양수면 첫 번째 문자열이 두 번째 문자열보다 크고, 음수면 첫 번째 문자열이 두 번째 문자열보다 작습니다.
또는, PHP 7.0 이상부터는 <=> 연산자를 사용할 수 있습니다.
#hostingforum.kr
php
usort($students, function($a, $b) {
return $a['이름'] <=> $b['이름'];
});
이 코드는 이름이 동일한 경우에도 오류가 발생하지 않습니다. <=> 연산자는 PHP 7.0 이상부터 사용할 수 있으며, 0이면 동일한 값, 양수면 첫 번째 값이 두 번째 값보다 크고, 음수면 첫 번째 값이 두 번째 값보다 작습니다.
2025-03-12 02:43