比较字符串是任何编程言语的字符串处置惩罚功用中主要的特征之一。在PHP中除了能够运用比较运算标记(==、<或>)加以比较外,还供应了一系列的比较函数,使PHP能够举行更庞杂的字符串比较。如strcmp()、strcasecmp()和strnatcmp()等函数。
1、按字节递次举行字符串比较
要按字节递次举行字符串的比较,能够运用strcmp()和strcasecmp()两个函数,个中函数strcasecmp()能够疏忽字符串中字母的大小写举行比较。这两个函数的原型以下所示:
in strcmp(string str1,string str2) //辨别字符串中字母大小写地比较 int strcasecmp(string str1,string str2) //疏忽字符串中字母大小写地比较
这两个函数的用法类似,都须要传入举行比较的两个字符串参数。能够对输入的str1和str2两字符串,根据字节的ASCII值从两个字符串的首字节最先比较,假如相称则进入下一个字节的比较,直至完毕比较。返回以下三个值之一:
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”,由于“4”大于“33”中的第一个字符,而根据天然排序轨则“33”大于“4”。用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怎样比较两个字符串的大小的细致内容,更多请关注ki4网别的相干文章!