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中字符串比较的常用方法 - CSDN博客
https://blog.csdn.net/qq_28602957/article/details/50958782

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

 <?php
function strcomp($str1,$str2){
if($str1 == $str2){
return TRUE;
}else{
return FALSE;
}
}
echo strcomp("First string","Second string");
//Returns FALSE
echo strcomp("A string","A string");
//Returns TRUE
?>

最新文章

  1. 结合实例详细介绍encodeURI()、encodeURIComponent()、decodeURI()、decodeURIComponent()使用方法
  2. [Unity3D]NGUI用Sprite动画和屏幕自适应做游戏开始场景
  3. css之页面两列布局
  4. radialLine 径向线生成器
  5. SQL Server求解最近多少销售记录的销售额占比总销售额的指定比例
  6. HackerRank &quot;Larry&#39;s Array&quot;
  7. Win7 64位 VS2013环境编译boost1_58_0
  8. Legolas工业自动化平台案例 —— 水源地自动化监控系统
  9. Android--Apache HttpClient
  10. position跟display、margin collapse、overflow、float这些特性相互叠加后会怎么样?
  11. Android开发中如何强制横屏和强制竖屏设置
  12. Force removing ActivityRecord,app died, no saved state报错的理解
  13. JS0热身运动
  14. Jackson将json字符串转换成List&lt;JavaBean&gt;
  15. View的工作原理(二)——layout
  16. Eclipse+Maven创建webapp项目&lt;一&gt; (转)
  17. window7下配置python2.7+tornado3.3开发环境
  18. Windows下SVN命令行工具使用详解
  19. Win10安装java环境
  20. CSS3 利用border-radius实现椭圆角

热门文章

  1. eclipse maven install 时控制台乱码问题解决
  2. Codeforces 11B Jumping Jack(数学)
  3. 利用netstat和tasklist查看PC的端口占用情况 及80端口被占用
  4. 数字信号处理C语言集(1.1 随机数的产生)
  5. POJ 3265 DP
  6. HDU 4358 Boring counting dfs序+莫队算法
  7. pigofzhou的巧克力棒
  8. javaScript for in循环遍历对象
  9. idea和Pycharm 等系列产品激活激活方法和激活码
  10. uni-app 地图初用 map