> 백엔드 개발 > PHP 문제 > PHP에서 두 문자열의 크기를 비교하는 방법

PHP에서 두 문자열의 크기를 비교하는 방법

王林
풀어 주다: 2023-02-25 19:50:01
원래의
6543명이 탐색했습니다.

PHP에서 두 문자열의 크기를 비교하는 방법

문자열 비교는 모든 프로그래밍 언어의 문자열 처리 기능에서 중요한 기능 중 하나입니다. 비교를 위해 비교 연산자(==, < 또는 >)를 사용하는 것 외에도 PHP는 PHP가 보다 복잡한 문자열 비교를 수행할 수 있도록 하는 일련의 비교 함수를 제공합니다. strcmp(), strcasecmp() 및 strnatcmp()와 같은 함수.

1. 문자열을 바이트 순서로 비교합니다

문자열을 바이트 순서로 비교하려면 strcmp() 및 strcasecmp() 함수를 사용할 수 있습니다. strcasecmp() 함수는 대문자와 소문자를 비교합니다. 이 두 함수의 프로토타입은 다음과 같습니다.

in strcmp(string str1,string str2)               //区分字符串中字母大小写地比较
int strcasecmp(string str1,string str2)                //忽略字符串中字母大小写地比较
로그인 후 복사

이 두 함수의 사용법은 비슷하며 둘 다 비교를 위해 두 개의 문자열 매개변수를 전달해야 합니다. 두 문자열 중 첫 번째 바이트부터 입력 문자열 str1과 str2를 비교할 수 있으며, 두 문자열이 동일할 경우 비교가 완료될 때까지 다음 바이트로 비교가 진행됩니다. 다음 세 가지 값 중 하나를 반환합니다.
1 str1이 str2와 같으면 0을 반환합니다.
2. str1이 str2보다 크면 1을 반환합니다.
3. str1이 str2보다 작으면 -1을 반환합니다.
다음 프로그램에서 비교되는 두 문자열의 크기는 비교 후 반환된 값에 따라 결정됩니다. 문자열에서 대문자와 소문자를 구별하려면 strcmp() 함수를 사용하고, 문자열에서 문자의 대소문자 비교를 무시하려면 strcasecmp() 함수를 사용하십시오. 코드는 다음과 같습니다:

<?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. 자연 정렬에 따른 문자열 비교

PHP는 바이트의 사전 순서에 따른 비교 외에도 "자연 정렬" 방법에 따른 문자열 비교도 제공합니다. 소위 자연 정렬이란 사람들의 일상 생활에서의 사고 습관에 따라 정렬하는 것, 즉 문자열의 숫자 부분을 숫자 크기에 따라 비교하는 것을 말합니다.

예를 들어, "4"는 "33"의 첫 번째 문자보다 크고 자연 정렬 규칙에 따르면 "33"은 "4"보다 크기 때문에 바이트 단위로 비교할 때 "4"는 "33"보다 큽니다. ". 자연 정렬에서 두 문자열을 비교하려면 strnatcmp() 함수를 사용하십시오. 이 함수는 대소문자를 구분하며 사용 형식은 strcmp() 함수와 유사합니다.

다음 예에서는 버블 정렬 방법을 사용하여 두 가지 비교 방법을 통해 파일 이름을 숫자로 배열로 정렬합니다. 코드는 다음과 같습니다.

<?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
?>
로그인 후 복사

이 함수는 PHP에서 strnatcasecmp() 함수의 대소문자 무시 버전도 제공합니다. 사용법은 strnatcmp() 함수와 동일합니다.

추천 튜토리얼: PHP 비디오 튜토리얼

위 내용은 PHP에서 두 문자열의 크기를 비교하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿