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

PHP asort() 함수 완벽 가이드 – 연관 배열을 키 유지하며 오름차순 정렬하기

PHP의 asort() 함수는 연관 배열(associative array)을 값(value)을 기준으로 오름차순 정렬하면서, 키(key)와 값 사이의 연관 관계를 그대로 유지하는 함수입니다. 일반적인 sort() 함수와 달리 인덱스가 재배열되지 않기 때문에, 키-값 쌍이 중요한 연관 배열을 다룰 때 특히 유용합니다.

문법(Syntax)

asort(arr, compare)

매개변수(Parameters)

  • arr − 정렬하고자 하는 대상 배열입니다.

  • compare − 배열 요소를 어떤 방식으로 비교할지 지정합니다. 사용 가능한 값은 다음과 같습니다.

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

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

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

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

    • SORT_NATURAL − 사람이 인식하는 자연스러운 순서(natural ordering)로 문자열을 비교합니다. 예를 들어 "img2"가 "img10"보다 앞에 옵니다.

반환값(Return)

asort() 함수는 정렬에 성공하면 TRUE, 실패하면 FALSE를 반환합니다. 참고로 이 함수는 원본 배열 자체를 직접 수정한다는 점도 기억해 두세요.

예제(Example)

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

<?php
$a = array(
    "0" => "India",
    "1" => "Australia",
    "2" => "England",
    "3" => "Bangladesh",
    "4" => "Zimbabwe",
);
asort($a);
foreach ($a as $key => $val) {
    echo "[$key] = $val";
    echo "\n";
}
?>

실행 결과(Output)

[1] = Australia
[3] = Bangladesh
[2] = England
[0] = India
[4] = Zimbabwe

정리 및 활용 팁

위 실행 결과를 보면 값이 알파벳 순(Australia → Zimbabwe)으로 정렬되었지만, 각 값의 원래 키([1], [3], [2]...)는 그대로 유지된 것을 확인할 수 있습니다.

만약 키가 아닌 값을 기준으로 내림차순 정렬이 필요하다면 arsort()를, 키를 기준으로 정렬하면서 연관 관계를 유지하려면 ksort() 또는 krsort()를 사용하면 됩니다. 상황에 맞는 정렬 함수를 선택하면 연관 배열을 훨씬 효율적으로 다룰 수 있습니다.