PHP의 uksort() 함수는 사용자가 직접 정의한 비교 함수(custom function)를 기준으로 배열을 키(key) 순서대로 정렬하는 함수입니다. 값(value)이 아닌 키를 대상으로 정렬하며, 정렬에 성공하면 TRUE를, 실패하면 FALSE를 반환합니다.
문법(Syntax)
uksort(arr, custom_function)
매개변수(Parameters)
arr − 정렬할 대상 배열입니다.
custom_function − 비교에 사용될 콜백 함수입니다. 이 함수는 첫 번째 인수가 두 번째 인수보다 작으면 0보다 작은 정수, 같으면 0, 크면 0보다 큰 정수를 반환해야 합니다.
반환값(Return)
uksort() 함수는 정렬에 성공하면 TRUE, 실패하면 FALSE를 반환합니다.
예제(Example)
다음은 uksort() 함수를 활용해 배열의 키를 정렬하는 예제입니다.
<?php
function display($x,$y) {
if ($x==$y) return 0;
return ($x<$y)?-1:1;
}
$myarr = array("a"=>99,"b"=>27,"c"=>56);
uksort($myarr,"display");
foreach($myarr as $x=>$x_value) {
echo "Key=" . $x . " Value=" . $x_value;
echo "<br>";
}
?>실행 결과(Output)
Key=a Value=99 Key=b Value=27 Key=c Value=56
예제 해설
위 예제에서 display() 함수는 두 개의 키를 비교하여 정렬 순서를 결정하는 역할을 합니다. uksort()는 이 비교 함수를 반복적으로 호출하면서 배열의 키인 a, b, c를 오름차순으로 정렬합니다. 결과적으로 각 키에 연결된 값도 함께 유지된 채 출력되는 것을 확인할 수 있습니다.
참고 사항
키가 아닌 값을 기준으로 정렬하고 싶다면 usort() 함수를, 키와 값을 모두 활용한 정렬에는 uasort() 함수를 사용하는 것이 좋습니다. 상황에 맞는 함수를 선택하면 더욱 효율적인 배열 처리가 가능합니다.