Home >Backend Development >PHP Tutorial >Detailed explanation of PHP string comparison function

Detailed explanation of PHP string comparison function

伊谢尔伦
伊谢尔伦Original
2017-04-22 18:32:5213630browse

In PHP, there are many ways to compare strings. The first is to use the strcmp() function and strcasecmp() function to compare by bytes. The second is to use the strnatcmp() function to compare according to nature. The third method is to use the strncmp() function to specify the comparison starting from the position of the source string. Below is an in-depth explanation of these methods.

1. Compare strings based on bytes

There are two methods for comparing strings based on bytes, namely using strcmp() function and strcasecmp() function. The difference between these two functions is that the strcmp() function distinguishes the case of characters, while the strcasecmp() function does not distinguish the case of characters. Since the implementation methods of these two functions are basically the same, here we only introduce the strcmp() function.

The strcmp() function is used to compare two strings by bytes.

The syntax format is as follows:

 strcmp(string1, string2)

Parameter string1 and parameter string2 specify the two strings to be compared. If they are equal, the function return value is 0; if the parameter string1 is greater than the parameter string2, the function return value is greater than 0; if the parameter string1 is less than the parameter string2, the function return value is less than 0.

Note: This function is case-sensitive.

Use the srtcmp() function and strcasecmp() function to compare two strings by bytes respectively. The code example is as follows:

<?php
 $str1 = "PHP学习手册!";               // 定义字符串常量
 $str2 = "PHP学习手册!";               // 定义字符串常量
 $str3 = "phpcn";                      // 定义字符串常量
 $str4 = "PHPCN";                      // 定义字符串常量
 echo strcmp($str1,$str2);             // 这两个字符串相等
 echo strcmp($str3,$str4);             // 注意该函数区分大小写
 echo strcasecmp($str3,$str4);          //该函数不区分大小写
?>

The output result is:

0 1 0

Note: In PHP, comparison between strings is widely used. For example, use the strcmp() function to compare whether the user name and password entered in the user login system are correct. If this function is not used when verifying the user and password, then the user name and password entered can be logged in as long as they are correct, whether in uppercase or lowercase. After using the srtcmp() function, this situation is avoided. It is correct in time and must match all upper and lower cases before you can log in, thus improving the security of the website.

2. Compare strings according to natural sorting method

In PHP, compare strings according to natural sorting method by This is achieved using the strnatcmp() function. The self-recognition sorting method compares the numeric part of the string, and compares the numbers in the string according to their size. Its syntax is in the following format:

strnatcmp(string1, string2)

If parameter string1 and parameter string2 are equal, the function return value is 0; if parameter string1 is greater than parameter string2, the function return value is greater than 0; if parameter string1 is less than parameter string2, The function return value is less than 0.

Tips: This function is case-sensitive.

Note: In natural arithmetic, 2 is smaller than 10. However, in the computer sequence, 10 is smaller than 2, because the first number in "10" is "1", which is smaller than " 2”.

The example code for using the strnatcmp() function to compare strings according to the natural sorting method is as follows:

<?php
 $str1 = "inter2.jpg";                  // 定义字符串常量
 $str2 = "inter10.jpg";                 // 定义字符串常量
 $str3 = "phpcn1";                      // 定义字符串常量
 $str4 = "PHPCN2";                      // 定义字符串常量
 echo strnatcmp($str1,$str2);           // 按自然排序法进行比较,返回-1
 echo strnatcmp($str3,$str4);           // 按自然排序法进行比较,返回1
?>

The output result is:

-1  1

Instructions: According to the For comparison, you can also use another strnatcasecmp() function that has the same effect as the strnatcmp() function but does not distinguish between sizes.

#3. Specify the function to start comparison from the source string position

strncmp() function is used to compare the The first n characters.

The syntax is as follows:

strncmp(string1, string2, length)

If parameter string1 and parameter string2 are equal, the function return value is 0; if parameter string1 is greater than parameter string2, then the function return value is greater than 0; if If parameter string1 is less than parameter string2, the function return value is less than 0. This function is case-sensitive.

Its parameter description is as follows:

# Parameter Number Descriptionstring1Specify the first string object to participate in the comparison string2Specify to participate in the comparison The second string objectlengthRequired parameter specifies the number of strings participating in the comparison in each string
Use the strncmp() function to compare whether the first two characters of the string are equal to the source string. The example code is as follows:

<?php
 $str1 = "I like this";                  // 定义字符串常量
 $str2 = "i study php";                  // 定义字符串常量
 echo strncmp($str1,$str2,2);            // 比较前两个字符
?>

The output result is:

 -1

Comment: As can be seen from the above code, since the first letter of the string in variable $str2 is lowercase, it does not match the string in variable $str1, so the function return value after comparing the two strings is - 1.

The above is the detailed content of Detailed explanation of PHP string comparison function. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn