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

PHP natsort() 함수 완벽 가이드 – 자연 순서 알고리즘으로 배열 정렬하기

PHP의 natsort() 함수는 "자연 순서(natural order)" 알고리즘을 사용하여 배열을 정렬하는 함수입니다. 일반적인 문자열 정렬과 달리, 사람이 인식하는 방식과 유사하게 숫자를 비교하기 때문에 rank10rank2보다 뒤에 위치하도록 정렬됩니다.

natsort() 함수란?

일반적인 sort() 함수로 문자열을 정렬하면 사전식(lexicographical) 순서가 적용되어 "rank10"이 "rank2"보다 앞에 오게 됩니다. 반면 natsort()는 문자열 안의 숫자 부분을 실제 숫자 값으로 인식하여 정렬하므로, 파일명이나 순위 목록처럼 숫자가 포함된 문자열을 다룰 때 특히 유용합니다.

문법

natsort(arr)

매개변수

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

반환값

natsort() 함수는 정렬에 성공하면 TRUE를, 실패하면 FALSE를 반환합니다. 참고로 이 함수는 원본 배열 자체를 직접 수정하며, 키와 값의 연관 관계는 그대로 유지됩니다.

예제

다음은 natsort() 함수를 활용한 예제입니다 −

<?php
$stu_rank = array("rank10","rank2","Rank3","rank1","Rank7","rank4");
natsort($stu_rank);
print_r($stu_rank);
?>

출력 결과

위 코드를 실행하면 아래와 같은 결과가 출력됩니다 −

Array
(
[2] => Rank3
[4] => Rank7
[3] => rank1
[1] => rank2
[5] => rank4
[0] => rank10
)

출력 결과 분석

결과를 보면 대소문자 구분 없이 숫자 크기를 기준으로 정렬된 것을 확인할 수 있습니다. 즉, rank1, rank2, Rank3, rank4, Rank7, rank10 순서로 자연스럽게 배치되며, 기존 배열의 인덱스([0]~[5])도 함께 유지됩니다. 만약 대소문자까지 구분하지 않고 정렬하고 싶다면 natcasesort() 함수를 사용할 수 있습니다.