How to compare the size of two strings in php

王林
Release: 2023-02-25 19:50:01
Original
6466 people have browsed it

How to compare the size of two strings in php

Comparing strings is one of the important features of the string processing capabilities of any programming language. In addition to using comparison operators (==, < or >) for comparison, PHP also provides a series of comparison functions that allow PHP to perform more complex string comparisons. Functions such as strcmp(), strcasecmp() and strnatcmp().

1. Compare strings in byte order

To compare strings in byte order, you can use strcmp() and strcasecmp() Function, where the function strcasecmp() can ignore the case of letters in strings for comparison. The prototypes of these two functions are as follows:

in strcmp(string str1,string str2)               //区分字符串中字母大小写地比较
int strcasecmp(string str1,string str2)                //忽略字符串中字母大小写地比较
Copy after login

The usage of these two functions is similar, and they both need to pass in two string parameters for comparison. You can compare the input strings str1 and str2 starting from the first byte of the two strings according to the ASCII value of the bytes. If they are equal, the comparison will proceed to the next byte until the comparison is completed. Return one of the following three values:
1. If str1 is equal to str2, return 0.
2. If str1 is greater than str2, return 1.
3. If str1 is less than str2, return -1.
In the following program, the size of the two comparison strings is determined by the returned value after comparison. Use the strcmp() function to differentiate between upper and lower case letters in a string, and use the strcasecmp() function to ignore case comparisons of letters in a string. The code is as follows:

<?php
$username = "Admin";
$password = "lampBrother";
 
//不区分大小写的比较,如果两个字符串相等返回0
if(strcasecmp($userName,"admin")== 0){
echo "用户名存在";
}
//将两个比较的字符串相应的函数转成全大写或全小写后,也可以实现不区分大小写的比较
if(strcasecmp(strtolower($userName),strtolower("admin")) == 0){
echo "用户名存在";
}
 
//区分字符串中字母的大小写比较
switch(strcmp($password,"lampbrother")){
case 0:
echo "两个字符串相等<br>"; break;
case 1:
echo "第一个字符串大于第二个字符串<br>"; break;
case -1:
echo "第一个字符串小于第二个字符串<br>"; break;
}
?>
Copy after login

2. String comparison according to natural sorting

In addition to comparing according to the dictionary order of bytes, PHP also provides Strings are compared according to the "natural ordering" method. The so-called natural sorting refers to sorting according to people's thinking habits in daily life, that is, comparing the numerical parts in the string according to the numerical size.

For example, "4" is greater than "33" when compared by bytes, because "4" is greater than the first character in "33", and according to the natural sorting rule, "33" is greater than "4". Use the strnatcmp() function to compare two strings in natural sorting. This function is case-sensitive and its usage format is similar to the strcmp() function.

In the following example, the bubble sort method is used to sort the file names with numbers in an array through two comparison methods. The code is as follows:

<?php
//定义一个包含数字值的数组
$files = array("file11.txt","file22.txt","file1.txt","file2.txt");
 
function mySort($arr,$select = false){
    for($i=0;$i<count($arr);$i++){
        for($j;$j<count($arr)-1;$j++){
        //如果第二个参数为ture则使用strcmp()函数比较大小
            if($select){
            //前后两个值比较结果大于0则交换位置
                if(strcmp($arr[$j],$arr[j+1])>0){
                    $tmp = $arr[$j];
                    $arr[$j] = $arr[$j+1];
                    $arr[$j+1] = $tmp;
                }
           //如果第二个参数为false则使用strnatcmp()函数比较大小 
           }else{
            //如果比较结果大于0交换位置
                if(strnatcmp($arr[$j],$arr[$j+1])>0){
                    $tmp = $arr[$j];
                    $arr[$j] = $arr[$j+1];
                    $arr[$j+1]; = $tmp;
                }
            }
        }
    }
return $arr; //排序后的数组
}
print_r(mySort($files,true));         //选择按字典顺序排序: file1.txt file11.txt file2.txt file22.txt
print_r(mySort($files,false));          //选择按自然顺序排序:file1.txt file2.txt file11.txt file22.txt
?>
Copy after login

In PHP, a case-ignoring version of this function, strnatcasecmp(), is also provided. The usage is the same as the strnatcmp() function.

Recommended tutorial: PHP video tutorial

The above is the detailed content of How to compare the size of two strings in php. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template