PHP中字符串比较的常用方法

本文介绍了PHP中常用的字符串比较方法,包括按字节比较、按自然排序法比较和指定位置比较等,并提供了具体示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PHP中字符串比较的常用方法

一、总结

1、其实应该是直接等于号就可以了的

2、也可用strcmp,注意返回值

 

二、PHP中字符串比较的常用方法

1、按字节比较
按字节比较字符串是最常用的方法。其中可能用到的函数为strcmp()和strcasecmp()。
这两个函数的区别为strcmp()区分字符的大小写,strcasecmp()不区分字符的大小写,两者用法基本相同。
这里只介绍strcmp();
语法如下
int strcmp(string str1,string str2)
参数str1和参数str2为要比较的两个字符串,如果相等则返回0;如果参数str1大于str2则返回值大于0;如果参数str1小于str2则返回值小于0。
例如:
$str1="107网站工作室";
$str2="107网站工作";
echo strcmp($str1,$str2);
$str3="lab";
$str4="LAB";
echo strcmp($str3,$str4);
echo strcasecmp($str3,$str4);
运行结果如下:
310
 
 2、按自然排序法比较
在PHP中,按照自然排序法进行字符串比较是同过strnatcmp()函数来实现的。自然排序法比较的是字符串中的数字部分,将字符串中的数字按照大小经行排序。
语法如下:
int strnatcmp(string str1,string str2)

strnatcmp() 函数使用一种"自然"算法来比较两个字符串。

在自然算法中,数字 2 小于数字 10。在计算机排序中,10 小于 2,这是因为 10 中的第一个数字小于 2。

$str1="str3.jpg";
$str2="str10.jpg";
echo "按字节比较:".strcmp($str1,$str2)."<br>";
echo "按自然排序法比较:".strnatcmp($str1,$str2)."<br>";
$str3="mrsoft1";
$str4="MRSOFT2";
echo "按字节比较:".strcmp($str3,$str4)."<br>";
echo "按自然排序法比较:".strnatcmp($str3,$str4)."<br>";
输出结果为:
按字节比较:1
按自然排序法比较:-1
按字节比较:1
按自然排序法比较:1
 
$str1  "mrsoft1" ;
$str2  "MRSOFT2" ;
echo  strnatcmp ( $str1 , $str2 );  //1 因为 m 大于 M
 
$str1  "mrsoft1" ;
$str2  "mrsoft2" ;
echo  strnatcmp ( $str1 , $str2 );  //-1 这样才对
 
$str1  "mrsoft11" ;
$str2  "mrsoft2" ;
echo  strnatcmp ( $str1 , $str2 );  //1 这才是本意 11 大于 2
说明:按照自然排序进行比较时,还有一个作用与strnatcmp()函数相同,但是不区分大小写的strnatcasecmp()函数
 
  
3、指定从源字符串的位置比较
 
  
strncmp()函数用来比较字符串中的前n个字符,该函数区分大小写
语法如下:
int strncmp(string str1,string str2,int len)
参数str1规定要比较的首个字符串。参数str2规定要比较的第二个字符串。len(必需)规定比较中所用的每个字符串的字符数。
如果相等则返回0;如果参数str1大于str2则返回值大于0;如果参数str1小于str2则返回值小于0。
例如:
 
  
$str1="123455789";
$str2="12345678";
echo strncmp($str1,$str2,6);
运算结果为
-1
提示:该函数与  strcmp() 函数类似,不同的是,strcmp() 没有 length 参数

 

参考:

PHP中字符串比较的常用方法 - 优快云博客
https://blog.youkuaiyun.com/qq_28602957/article/details/50958782

 

三、 php简单判断两个字符串是否相等的方法

 1 <?php 
 2 function strcomp($str1,$str2){ 
 3   if($str1 == $str2){ 
 4     return TRUE; 
 5   }else{ 
 6     return FALSE; 
 7   } 
 8 } 
 9 echo strcomp("First string","Second string");
10 //Returns FALSE 
11 echo strcomp("A string","A string");
12 //Returns TRUE 
13 ?>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值