php에서, strnatcasecmp 및 strcasecmp는 문자열을 비교하는 데 일반적으로 사용되는 두 가지 함수입니다. 비슷한 기능이 있지만 몇 가지 주요 차이점이 있습니다. 이 두 기능의 차이를 이해하면 코드를 작성할 때 실제 요구에 따라보다 적절한 기능을 선택하는 데 도움이 될 수 있습니다.
strcasecmp 함수는 두 줄을 비교하는 PHP의 함수입니다. 두 줄의 크기를 비교하고 문자의 경우 (즉, 케이스 둔감)를 무시합니다. 다음 값을 반환합니다.
두 줄이 동일하면 0을 반환하십시오.
첫 번째 문자열이 두 번째 문자열보다 작은 경우 음수가 반환됩니다.
첫 번째 문자열이 두 번째 문자열보다 크면 양수가 반환됩니다.
int strcasecmp ( string $str1 , string $str2 )
<?php
$str1 = "Hello World";
$str2 = "hello world";
if (strcasecmp($str1, $str2) == 0) {
echo "The strings are equal.";
} else {
echo "The strings are not equal.";
}
?>
The strings are equal.
strcasecmp는 두 줄의 알파벳 순서를 비교하지만 그들의 경우를 무시합니다.
strnatcasecmp 함수는 strnatcasecmp 와 유사하며 두 줄을 비교하는 데에도 사용됩니다. 차이점은 strnatcasecmp가 비교를 위해 자연 순서 (자연 순서)를 사용한다는 것입니다. 이것은 알파벳 순서뿐만 아니라 "자연적인 인간 종류"방식으로 현을 비교할 수 있음을 의미합니다. 자연 분류는 숫자의 크기를 고려합니다.
int strnatcasecmp ( string $str1 , string $str2 )
<?php
$str1 = "item20";
$str2 = "item9";
if (strnatcasecmp($str1, $str2) == 0) {
echo "The strings are equal.";
} else {
echo "The strings are not equal.";
}
?>
The strings are not equal.
문자와 숫자의 순서는 단순 해 보일 수 있지만 strnatcasecmp는 자연 분류를 채택하기 때문에 숫자 9 가 20 보다 작다고 생각할 것입니다.
알파벳순 대 자연 순서 : STRCASECMP는 문자열을 알파벳순으로 비교하는 데 사용되는 반면, strnatcasecmp는 문자열을 자연 순서로 비교하는 데 사용됩니다. 자연 순서는 숫자를 포함하는 문자열을 처리 할 때 직관적 인 분류 규칙에 따라 strnatcasecmp를 더 많이 만들 것입니다.
숫자 처리 : strnatcasecmp는 숫자의 크기에 따라 숫자를 포함하는 문자열을 정렬합니다. 예를 들어, "항목 10"은 숫자 10이 숫자 2 보다 크기 때문에 "Item2" 보다 작습니다. strcasecmp는 이것을 수행하지 않으며 문자열을 알파벳순으로 비교합니다.
선택할 기능은 실제 요구에 따라 다릅니다. 문자열의 알파벳 순서를 비교하고 숫자의 정렬에 신경 쓰지 않으면 strcasecmp 로 충분하고 더 잘 수행되고 사용하기 쉽습니다.
그러나 문자열에 숫자가 포함되어 있고 문자열을 인간을 위해 자연스럽게 정렬하려면 (즉, 숫자는 숫자 크기로 비교됩니다) StrnatcaseCMP 는 귀하의 요구에 더 적합합니다. 예를 들어, 버전 번호, 제품 번호 등을 처리 할 때 StrnatcaseCMP는 귀하의 기대와 더 일치합니다.
strcasecmp를 사용 하는 경우 1.10 과 1.2의 두 가지 버전 번호를 비교해야한다고 가정 해 봅시다. 그러나 strnatcasecmp를 사용하면 올바른 정렬 결과가 나타납니다.
<?php
$version1 = "1.10";
$version2 = "1.2";
if (strnatcasecmp($version1, $version2) < 0) {
echo "$version1 is older than $version2";
} else {
echo "$version1 is newer than $version2";
}
?>
1.10 is newer than 1.2
strcasecmp : 사례를 무시하고 숫자 분류를 고려할 필요가없는 문자열 비교에 적합합니다.
strnatcasecmp : 자연 순서 비교가 필요한 시나리오, 특히 숫자를 포함하는 문자열에 적합합니다.
선택할 기능은 전적으로 응용 프로그램 시나리오 및 요구 사항에 따라 다릅니다. 문자열에 숫자가 포함되어 있고 숫자 크기별로 정렬하려면 Strnatcasecmp가 더 적합한 선택입니다. 단순한 문자 비교라면 strnatcasecmp가 더 간단하고 효율적입니다.