php语⾔⽐较数字⼤⼩,php怎么⽐较两个字符串的⼤⼩
⽐较字符串是任何编程语⾔的字符串处理功能中重要的特性之⼀。在PHP中除了可以使⽤⽐较运算符号(==、)加以⽐较外,还提供了⼀系列的⽐较函数,使PHP可以进⾏更复杂的字符串⽐较。如strcmp()、strcasecmp()和strnatcmp()等函数。
1、按字节顺序进⾏字符串⽐较直线电机滑台
要按字节顺序进⾏字符串的⽐较,可以使⽤strcmp()和strcasecmp()两个函数,其中函数strcasecmp()可以忽略字符串中字母的⼤⼩写进⾏⽐较。这两个函数的原型如下所⽰:1
2instrcmp(string str1,string str2)//区分字符串中字母⼤⼩写地⽐较
intstrcasecmp(string str1,string str2)//忽略字符串中字母⼤⼩写地⽐较
这两个函数的⽤法相似,都需要传⼊进⾏⽐较的两个字符串参数。可以对输⼊的str1和str2两字符串,按照字节的ASCII值从两个字符串的⾸字节开始⽐较,如果相等则进⼊下⼀个字节的⽐较,直⾄结束⽐较。返回以下三个值之⼀:
1、如果str1等于str2则返回0。
2、如果str1⼤于str2则返回1。
3、如果str1⼩于str2则返回-1。
在下⾯的程序中通过⽐较后的返回值判断两个⽐较字符串⼤⼩。使⽤strcmp()函数区分字符串中字母⼤⼩写的⽐较,使⽤strcasecmp()函数忽略字符串中字母⼤⼩写的⽐较。代码如下所⽰:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
23<?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 "两个字符串相等
";break;
case 1:
echo "第⼀个字符串⼤于第⼆个字符串
";break;
case -1:
echo "第⼀个字符串⼩于第⼆个字符串
字符串比较函数实现
";break;
}
>
2、按⾃然排序进⾏字符串⽐较
除了可以按照字节位的字典顺序进⾏⽐较外,PHP还提供了按照“⾃然排序”法对字符串进⾏⽐较。所谓⾃然排序,是指按照⼈们的⽇常⽣活中的思维习惯进⾏排序,即将字符串中的数字部分按照数字⼤⼩进⾏⽐较。
例如按照字节⽐较时“4”⼤于“33”,因为“4”⼤于“33”中的第⼀个字符,⽽按照⾃然排序法则“33”⼤于“4”。⽤strnatcmp()函数按⾃然排序法⽐较两个字符串,该函数对⼤⼩写敏感,其使⽤格式与strcmp()函数相似。
在下⾯的例⼦中,对⼀个数组中带有数字的⽂件名,使⽤冒泡排序法通过两种⽐较⽅法排序。代码如下所⽰:1
2
3
4
5
6
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31<?php
//定义⼀个包含数字值的数组
$files =array("","","",""); function mySort($arr,$select = false){
for($i=0;$i
for($j;$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));//选择按字典顺序排序:
print_r(mySort($files,false));//选择按⾃然顺序排序:
>
在PHP中也提供了这个函数忽略⼤⼩写的版本的函数strnatcasecmp()⽤法与strnatcmp()函数相同。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。