search
HomeBackend DevelopmentPHP ProblemHow to compare the size of two strings in php

How to compare the size of two strings in php

Oct 08, 2019 am 11:11 AM
phpsizestringCompare

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 (==, ) 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)                //忽略字符串中字母大小写地比较

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;
}
?>

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
?>

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!

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
ACID vs BASE Database: Differences and when to use each.ACID vs BASE Database: Differences and when to use each.Mar 26, 2025 pm 04:19 PM

The article compares ACID and BASE database models, detailing their characteristics and appropriate use cases. ACID prioritizes data integrity and consistency, suitable for financial and e-commerce applications, while BASE focuses on availability and

PHP Secure File Uploads: Preventing file-related vulnerabilities.PHP Secure File Uploads: Preventing file-related vulnerabilities.Mar 26, 2025 pm 04:18 PM

The article discusses securing PHP file uploads to prevent vulnerabilities like code injection. It focuses on file type validation, secure storage, and error handling to enhance application security.

PHP Input Validation: Best practices.PHP Input Validation: Best practices.Mar 26, 2025 pm 04:17 PM

Article discusses best practices for PHP input validation to enhance security, focusing on techniques like using built-in functions, whitelist approach, and server-side validation.

PHP API Rate Limiting: Implementation strategies.PHP API Rate Limiting: Implementation strategies.Mar 26, 2025 pm 04:16 PM

The article discusses strategies for implementing API rate limiting in PHP, including algorithms like Token Bucket and Leaky Bucket, and using libraries like symfony/rate-limiter. It also covers monitoring, dynamically adjusting rate limits, and hand

PHP Password Hashing: password_hash and password_verify.PHP Password Hashing: password_hash and password_verify.Mar 26, 2025 pm 04:15 PM

The article discusses the benefits of using password_hash and password_verify in PHP for securing passwords. The main argument is that these functions enhance password protection through automatic salt generation, strong hashing algorithms, and secur

OWASP Top 10 PHP: Describe and mitigate common vulnerabilities.OWASP Top 10 PHP: Describe and mitigate common vulnerabilities.Mar 26, 2025 pm 04:13 PM

The article discusses OWASP Top 10 vulnerabilities in PHP and mitigation strategies. Key issues include injection, broken authentication, and XSS, with recommended tools for monitoring and securing PHP applications.

PHP XSS Prevention: How to protect against XSS.PHP XSS Prevention: How to protect against XSS.Mar 26, 2025 pm 04:12 PM

The article discusses strategies to prevent XSS attacks in PHP, focusing on input sanitization, output encoding, and using security-enhancing libraries and frameworks.

PHP Interface vs Abstract Class: When to use each.PHP Interface vs Abstract Class: When to use each.Mar 26, 2025 pm 04:11 PM

The article discusses the use of interfaces and abstract classes in PHP, focusing on when to use each. Interfaces define a contract without implementation, suitable for unrelated classes and multiple inheritance. Abstract classes provide common funct

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools