PHP의 strnatcmp() 함수는 자연 순서(natural order) 알고리즘을 기반으로 두 문자열을 비교하는 함수입니다. 일반적인 문자열 비교와 달리, 숫자가 포함된 문자열을 사람이 인식하는 방식과 유사하게 비교할 수 있어 파일명이나 버전 번호를 정렬할 때 특히 유용합니다.
문법(Syntax)
strnatcmp(str1, str2)
매개변수(Parameters)
str1 − 비교할 첫 번째 문자열입니다.
str2 − 비교할 두 번째 문자열입니다.
반환값(Return)
strnatcmp() 함수는 다음과 같은 값을 반환합니다.
0 − 두 문자열이 동일한 경우
0보다 작은 값(<0) − str1이 str2보다 작은 경우
0보다 큰 값(>0) − str1이 str2보다 큰 경우
예제 1
다음은 strnatcmp() 함수의 기본적인 사용 예제입니다.
<?php
echo strnatcmp("Test", "TEST");
?>출력 결과
1
대소문자를 구분하여 비교하므로 "Test"가 "TEST"보다 크다는 결과(1)가 반환됩니다.
예제 2
숫자가 포함된 문자열을 자연 순서로 비교하는 예제를 살펴보겠습니다.
<?php
echo strnatcmp("5Demo", "50DEMO");
echo "\n";
echo strnatcmp("50Demo", "5DEMO");
echo "\n";
echo strnatcmp("100Demo", "100Demo");
?>출력 결과
-1 1 0
위 결과에서 볼 수 있듯이, strnatcmp() 함수는 숫자를 일반 문자처럼 한 글자씩 비교하지 않고 숫자 값 자체로 인식합니다. 따라서 "5Demo"는 "50Demo"보다 작은 것(-1)으로 판단되며, 이는 실제 프로그램에서 파일 목록을 직관적으로 정렬할 때 매우 유용한 특징입니다.