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. Java基础学习总结(22)——异常处理

    一.异常的概念 异常指的是运行期出现的错误,也就是当程序开始执行以后执行期出现的错误.出现错误时观察错误的名字和行号最为重要. package cn.javastudy.summary; public ...

  2. 洛谷—— P1969 积木大赛

    https://www.luogu.org/problem/show?pid=1969 题目描述 春春幼儿园举办了一年一度的“积木大赛”.今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度 ...

  3. ImageLoader的简单分析(二)

    在<ImageLoader的简单分析>这篇博客中对IImageLoader三大组件的创建过程以及三者之间的关系做了说明.同一时候文章的最后也简单的说明了一下ImageLoader是怎么通过 ...

  4. [Python] Normalize the data with Pandas

    import os import pandas as pd import matplotlib.pyplot as plt def test_run(): start_date='2017-01-01 ...

  5. .Net 断点调试

    设置断点,F11逐句查看,F10逐过程查看. 通过断点,可以查看程序走的过程,可以更清晰程序的流程. 通过断点,可以查看属性的值情况,判断哪里出了问题. 不过,只适用于pc端调试,浏览器访问才会触发. ...

  6. Linux系统安全加固(一)

    Linux系统安全加固(一)     去年8月,某所网站遭黑客攻击瘫痪虽然港交所随后及时启用备用系统,但还是致使7支股票1支债卷被迫停牌,次日再次遭受攻击而瘫痪:在去年年底继CSDN信息安全出现之后, ...

  7. C#中如何获得两个日期之间的天数差

    DateTime d1; DateTime d2; //自己去赋值吧 int days = (d1 - d2).Days;//天数差 label1.Text = "2012-1-1 15:3 ...

  8. python 多线程探索

    前面已经了解过了,python多线程效率较低的主要原因是存在GIL,即Global Interpreter Lock(全局解释器锁).这里继续详细的看下GIL的说明与如何避免GIL的影响,从而提高py ...

  9. ognl.OgnlException: target is null for setProperty(null,&quot;XXXX&quot;...)

    今天遇到了这个奇葩问题,最后来回比对了一下前辈写过的一段完整代码后才发现问题. Error大概描写叙述为: 警告: Error setting expression 'XXX' with value ...

  10. Eclipse中JDK的配置

    window -> preference -> java -> install jres -> add -> standard vm -> 设置好相应的jre ho ...