PHP에서 때때로 소프트웨어 버전, 애플리케이션 버전 등과 같은 문자열을 다룰 때는 버전 번호를 비교해야합니다. StrnatcaseCMP는 두 줄을 자연 순서로 비교하는 기능이며, 종종 버전 문자열을 비교하는 데 사용됩니다. 일반적인 strcmp 함수와 달리 strnatcasecmp는 문자의 문자 순서의 비교가 아니라 숫자의 크기를 고려합니다. 이 기사는 StrnatcaseCMP 함수를 사용하여 버전 문자열의 자연 순서 비교를 수행하고 정렬하는 방법을 보여주는 방법을 소개합니다.
strnatcasecmp 함수는 두 줄을 자연 순서대로 비교하여 사례를 무시합니다. 이 함수는 strcasecmp 함수와 유사하지만 인간 직관적 인 분류, 즉 숫자와 문자는 자연 순서로 비교됩니다.
int strnatcasecmp ( string $str1 , string $str2 )
$ str1 과 $ str2 는 비교해야 할 두 개의 문자열입니다.
반품 값 :
$ str1이 $ str2 미만인 경우 음수가 반환됩니다.
$ str1이 $ str2 와 같으면 0을 반환하십시오.
$ str1 이 $ str2 보다 큰 경우 양수가 반환됩니다.
strnatcasecmp가 문자열을 비교할 때 숫자는 실제 크기로 비교됩니다. 예를 들어, "10"은 "10"이 "9"보다 클 것입니다.
자연 순서로 정렬 해야하는 버전 번호 문자열 세트가 있다고 가정 해 봅시다. Strnatcasecmp는 이 비교에 매우 적합하다고 가정합니다. 예를 들어 다음 버전 번호 목록이 있습니다.
$versions = ["1.10.3", "1.2.5", "1.2.10", "1.3.0", "1.1.9"];
USORT 함수 및 StrnatCaseCMP를 사용 하여이 버전 번호를 정렬 할 수 있습니다.
$versions = ["1.10.3", "1.2.5", "1.2.10", "1.3.0", "1.1.9"];
usort($versions, function($a, $b) {
return strnatcasecmp($a, $b);
});
print_r($versions);
산출:
Array
(
[0] => 1.1.9
[1] => 1.2.5
[2] => 1.2.10
[3] => 1.3.0
[4] => 1.10.3
)
출력 결과에서 판단하면 StrnatCaseCMP 함수는 버전 번호의 실제 크기에 따라 정렬됩니다. 자연 순서 정렬은 문자별로 분류하는 것이 아니라 숫자의 숫자 수와 크기를 고려합니다. 따라서 "1.10.3"은 끝에 나오고 "1.2.5"와 "1.2.10"은 자연 순서로 배열됩니다.
개발 중에 버전 번호를 정렬 해야하는 경우 StrnatcaseCMP를 사용하여 버전 번호를 자연 순서대로 비교하고 정렬 할 수 있습니다. 이 방법은 특히 소프트웨어 버전, 시스템 업데이트 또는 기타 버전 제어 요구 사항을 처리 할 때 매우 효과적입니다.
예를 들어, 소프트웨어 업데이트를 처리하는 경우 여러 버전 번호 목록이 발생할 수 있습니다. strnatcasecmp를 사용하면 버전 번호의 순서가 사용자의 기대치를 충족하고 "10"이 "2"이전에 있지 않도록 할 수 있습니다.
URL에 저장된 버전 번호 정보 세트가 있다고 가정하면 URL에서 얻은 버전 번호 목록을 정렬해야 할 수도 있습니다. 원래 URL이 https://example.com/versions 라고 가정하면 URL의 도메인 이름을 gitbox.net 으로 바꿀 수 있습니다.
$url = "https://gitbox.net/versions";
URL을 요청하여 버전 번호 데이터를 얻고 위에서 언급 한 strnatcasecmp 메소드를 사용하여 정렬 할 수 있습니다.
이 기사에서는 PHP에서 strnatcasecmp 함수를 사용하여 버전 번호를 자연 순서로 비교하고 정렬하는 방법을 설명합니다. 이 기능은 버전 번호 정렬에 매우 적합하며 전통적인 문자열 정렬의 가능한 문제를 피합니다. strnatcasecmp 와 함께 USORT를 사용하면 버전 번호 목록을 쉽게 정렬하여 결과가 예상대로 확인할 수 있습니다. 실제 개발에서 StrnatcaseCMP는 버전 번호 분류를 처리 할 때 매우 유용한 도구입니다.