Home > Article > Backend Development > How to perform case-insensitive comparison of strings in php
Method: 1. Use the "strcasecmp(string1,string2)" statement; 2. Use the "strncasecmp(string1,string2,length)" statement; 3. Use the "strnatcasecmp(string1,string2)" statement.
The operating environment of this tutorial: windows7 system, PHP7.1 version, DELL G3 computer
Method 1: Use strcasecmp() Function
strcasecmp() function is not case-sensitive when comparing strings. Its syntax format is as follows:
strcasecmp(string $str1, string $str2)
Among them, $str1 and $str2 are the two characters to be compared. string.
According to the comparison result, if $str1 is less than $str2, the return value 53692ad3c4c5c62625c4329a97d65049 0
; If $str1 is equal to $str2, 0
is returned.
Website URLs are not case-sensitive, so we can use the strcasecmp() function to compare whether two URLs are the same. The sample code is as follows:
<?php header("Content-type:text/html;charset=utf-8"); $url1 = '//m.sbmmt.com/'; $url2 = 'HTTPS://m.sbmmt.com/'; if(strcasecmp($url1, $url2) == 0){ echo '两个网址相同'; } else { echo '两个网址不同'; } ?>
Output:
两个网址相同
Method 2: Use the strncasecmp() function
The strncasecmp() function compares two strings (not case-sensitive).
Syntax
strncasecmp(string1,string2,length)
Parameters | Description |
---|---|
string1 | Required. Specifies the first string to compare. |
string2 | Required. Specifies the second string to be compared. |
length | Required. Specifies the number of characters per string used for comparison. |
Return value: This function returns:
0
- If two strings Equality
a5ed43fdc0aabb21c324999709f28d900<code> - if string1 is greater than string2
<?php echo strncasecmp("Hello","Hello",6); echo "<br>"; echo strncasecmp("Hello","hELLo",6); ?>Output:
0 0
Method 3: Use strnatcasecmp() function
The strnatcasecmp() function uses a "natural" algorithm to compare two strings (case-insensitive). In natural algorithms, the number 2 is less than the number 10. In computer sorting, 10 is less than 2 because the first number in 10 is less than 2. Syntaxstrnatcasecmp(string1,string2)
Description | |
---|---|
string1 | Required. Specifies the first string to compare.|
string2 | Required. Specifies the second string to be compared.
0 - If the two strings are equal
3ea2efc11e24bd12fd4d8890f605da730
- if string1 is greater than string2
<?php echo strnatcasecmp("2Hello world!","10Hello WORLD!"); echo "<br>"; echo strnatcasecmp("10Hello world!","2Hello WORLD!"); ?>
Output:
-1 1
Natural algorithm (strnatcmp) and conventional computer string sorting algorithm ( strcmp) <?php
$arr1 = $arr2 = array("pic1","pic2","pic10","pic01","pic100","pic20","pic30","pic200");
echo "Standard string comparison"."<br>";
usort($arr1,"strcmp");
print_r($arr1);
echo "<br>";
echo "<br>";
echo "Natural order string comparison"."<br>";
usort($arr2,"strnatcmp");
print_r($arr2);
?>
Output:
Standard string comparison Array ( [0] => pic01 [1] => pic1 [2] => pic10 [3] => pic100 [4] => pic2 [5] => pic20 [6] => pic200 [7] => pic30 ) Natural order string comparison Array ( [0] => pic01 [1] => pic1 [2] => pic2 [3] => pic10 [4] => pic20 [5] => pic30 [6] => pic100 [7] => pic200 )
Recommended learning: "
PHP Video TutorialThe above is the detailed content of How to perform case-insensitive comparison of strings in php. For more information, please follow other related articles on the PHP Chinese website!