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

PHP中字符串比较的常用方法的更多相关文章

  1. 前端开发:Javascript中的数组,常用方法解析

    前端开发:Javascript中的数组,常用方法解析 前言 Array是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array ...

  2. Java中字符串中子串的查找共有四种方法(indexof())

    Java中字符串中子串的查找共有四种方法(indexof()) Java中字符串中子串的查找共有四种方法,如下:1.int indexOf(String str) :返回第一次出现的指定子字符串在此字 ...

  3. Java 中的 String 类常用方法

    字符串广泛应用在Java编程中,在Java中字符串属于对象,String 类提供了许多用来处理字符串的方法,例如,获取字符串长度.对字符串进行截取.将字符串转换为大写或小写.字符串分割等. Strin ...

  4. js中字符串的方法

    js String对象中常用方法小结,需要的朋友可以参考下: 1.charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码. strObj.charCodeAt(index) 说明: ...

  5. 【Python从入门到精通】(九)Python中字符串的各种骚操作你已经烂熟于心了么?

    您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文将重点介绍Python字符串的各种常用方法,字符串是实际开发中经常用到的,所有熟练的掌握它的各种用法显得尤为重要. 干货满满,建议收藏,欢迎大 ...

  6. SQL SERVER 将表中字符串转换为数字的函数 (详询请加qq:2085920154)

    在SQL SERVER 2005中,将表中字符串转换为数字的函数共2个:1. convert(int,字段名)   例如:select convert(int,'3')2. cast(字段名 as i ...

  7. Java中字符串的几个实例

    String str=new String("abc");new 对象时,位于堆中,同时看字符串常量中是否有字符串"abc",如果没有,则进行添加,同时进行关联 ...

  8. PHP中字符串的连接和换行

    PHP中字符串的连接使用点,不是加号.换行\n需要用双引号括起来,不能用单引号. eg. <?php print_r("hello"."\n"); pri ...

  9. 三张图彻底了解Java中字符串的不变性

    转载: 三张图彻底了解Java中字符串的不变性 定义一个字符串 String s = "abcd"; s中保存了string对象的引用.下面的箭头可以理解为"存储他的引用 ...

随机推荐

  1. 题解 BZOJ4919 【大根堆】

    题面:传送门. 老师说今天要考一道线段树合并,然后...然后这道题我就GG了.(当然可以用线段树合并写,只是比较复杂) 有人赛时想了个贪心,然后被机房巨佬hack了,结果在hack的过程中巨佬想出了正 ...

  2. HTML学习----------DAY1 第一节

    什么是 HTML? HTML 是用来描述网页的一种语言. HTML 指的是超文本标记语言 (Hyper Text Markup Language) HTML 不是一种编程语言,而是一种标记语言 (ma ...

  3. dropify,不错的图片上传预览插件

    引言 传统的图片上传,很丑.点击选择之后,还无法预览. 有一种方案是传到服务器,然后返回地址,然后显示,比较麻烦. 用这个dropify,就可以解决之歌问题. 看效果 用法 1.引入文件,需要jque ...

  4. BZOJ 1066 Dinic

    思路: 网络流 建边比较麻烦 //By SiriusRen #include <queue> #include <cstdio> #include <cstring> ...

  5. url传递中文的解决方案总结

    File文件控件,选中文件(图片,flash,视频)即立即预览显示 .Net刷新页面的几种方式 Attributes.Add用途与用法(C#) url传递中文的解决方案总结 byte[] bytes ...

  6. 963B:Destruction of a Tree

    You are given a tree (a graph with n vertices and n - 1 edges in which it's possible to reach any ve ...

  7. 简单学习Python之路1

    如何在cmd中打开文件:先用win+R打开cmd界面,在已知到你自己要打开文件的地址之后比如(F:\workspace),你先按F:,然后在用cd workspace进入workspace的文件中,然 ...

  8. Hexo 相册实践

    灵感 想给自已的blog添加一个相册功能.给生活中的点点滴滴留影记录.搜寻网络上给Next主题添加相册功能的基本上没有,只能重头到尾开始一点点的实践.    大致的想法:  1. 相册展示类似于归档一 ...

  9. Reference Counting GC (Part two :Partial Mark & Sweep)

    目录 部分标记清除算法 前提 dec_ref_cnt()函数 new_obj()函数 scan_hatch_queue()函数 paint_gray()函数 scan_gray()函数 collect ...

  10. win系统下的eclipse连接和使用linux上的hadoop集群

    准备工作 先在win系统的hosts文件中加入下面内容 10.61.6.164master     //hadoop集群的master节点 一.首先在eclipse上安装hadoop插件 下载hado ...