Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP arsort() 함수 – 배열 내림차순 정렬과 키 유지 방법

PHP의 arsort() 함수는 배열을 내림차순(역순)으로 정렬하면서 각 요소의 키와 값 사이의 연관 관계(index association)를 그대로 유지하는 함수입니다. 연관 배열에서 값을 기준으로 내림차순 정렬이 필요할 때 특히 유용하게 사용됩니다.

문법(Syntax)

arsort(arr, compare)

매개변수(Parameters)

  • arr − 정렬할 대상 배열입니다.

  • compare − 배열 요소를 비교하는 방식을 지정합니다. 선택적으로 생략 가능하며, 지정하지 않으면 기본값인 SORT_REGULAR가 적용됩니다. 사용 가능한 값은 다음과 같습니다.

    • SORT_STRING − 요소를 문자열로 취급하여 비교합니다.

    • SORT_REGULAR − 타입을 변경하지 않은 상태로 요소를 비교합니다.

    • SORT_NUMERIC − 요소를 숫자로 취급하여 비교합니다.

    • SORT_LOCALE_STRING − 현재 로케일(locale) 설정을 기반으로 문자열로 비교합니다.

    • SORT_NATURAL − 사람이 인식하는 자연스러운 순서(natural ordering)대로 문자열을 비교합니다. 예를 들어 "item2"와 "item10"을 비교할 때 사람처럼 2가 앞에 옵니다.

반환값(Return)

arsort() 함수는 정렬에 성공하면 TRUE를, 실패하면 FALSE를 반환합니다.

예제(Example)

다음은 arsort() 함수를 활용한 예제입니다.

<?php
$rank = array("Australia"=>2,"India"=>5,"Bangladesh"=>9);
arsort($rank);

foreach($rank as $akey=>$avalue) {
    echo "Key=" . $akey . " : Value=" . $avalue;
    echo "<br>";
}
?>

실행 결과(Output)

위 예제의 실행 결과는 다음과 같습니다.

Key=Bangladesh : Value=9
Key=India : Value=5
Key=Australia : Value=2

결과를 보면 값(Value)을 기준으로 9 → 5 → 2 순서대로 내림차순 정렬되었으며, 각 값에 연결된 키(Bangladesh, India, Australia)도 함께 이동하여 원래의 키-값 연관 관계가 그대로 유지된 것을 확인할 수 있습니다.

참고: 유사한 PHP 정렬 함수

  • asort() − 키-값 연관 관계를 유지한 채 오름차순으로 정렬합니다.

  • rsort() − 내림차순으로 정렬하지만, 키를 버리고 새로운 숫자 인덱스를 부여합니다.

  • krsort() − 값이 아닌 키(key)를 기준으로 내림차순 정렬합니다.