PHP字符串比较函数StrCmp()和()strcasecmp使用总结

比较字符串是一个对任何编程语言的字符串处理功能的最重要的特征。在PHP除了更多的运算符号的使用(= =,)进行比较,还提供一系列的函数,因此,PHP可以更复杂的字符串比较。如StrCmp()(),strcasecmp()和()函数strnatcmp。

1。字节顺序的字符串比较

比较字节顺序的字符串,你可以使用strcmp()和两个函数strcasecmp(),在函数strcasecmp()可以忽略字母的字符串比较。两函数的原型如下:

复制代码代码如下所示:

StrCmp(字符串str1、str2字符串) / /串字母区分

Int strcasecmp(字符串str1、str2字符串) / /忽略字母的字符串比较



这两个函数的使用是类似的,和所有的两个字符串参数,进行比较是必要的。输入的两个字符串str1和str2可以比较根据ASCII值的字节从两字符串的第一个字节如果相等,然后进入下一个字节到最后比较比较。返回一个下面的三个值:

*如果Str1等于str2返回0。

如果它返回str2 str1的大于1。

它返回1如果str1小于str2。

在下面的程序中,比较两个字符串的大小是判断返回值比较后,使用strcmp()函数来区分字符串中的字母大小的比较,并使用strcasecmp()函数忽略字符串中的字母大小的比较。当然,是没有实际意义的代码。如下所示:

复制代码代码如下所示:

< PHP

用户名;

$密码=lampbrother ;



不敏感比较,如果两个字符串等于返回0。

如果(strcasecmp($用户名admin)= = 0){

用户名存在;

}

该函数与相应的字符串相比,毕竟是大写或小写,也可以实现比较敏感的比较。

如果(strcasecmp(strtolower($用户名),strtolower(admin))= = 0){

用户名存在;

}



字母区分字符串比较

开关(strcmp($密码,lampbrother )){

案例0:

两个字符串是相等的;中断;

案例1:

第一个字符串大于第二个字符串;中断;

案例1:

第一个字符串小于第二个字符串;中断;

}

>



2。按自然排序比较字符串

除了在字节位的字典顺序比较,PHP还提供字符串的比较根据自然排序法。所谓的自然排序是指根据人的生活习惯进行排序,并在字符串的字符串的数目将比数按大小。例如,4大于33按字节比较,因为在4的第一个字符是大于33,而自然排名规则33大于4,strnatcmp()函数是用自然分类法比较两个字符串,这是案例与敏感,和格式是类似的strcmp()函数。

在下面的例子中,数组中有数字的文件的名称通过冒泡排序方法用两种比较方法排序:

复制代码代码如下所示:

< PHP

数组包含数字值的定义。

$文件=阵列(file11 .txt



功能mysort($ ARR,$选择= false){

为($我= 0;$我<计数($ ARR);$ i++){

为($ J;J <计数($ ARR)- 1;J + +){

/ /如果第二个参数是strcmp(真正的)使用功能大小的比较

如果($选择){

比较两个/ 0个百分点之前和之后的结果大于交换位置的结果。

如果(StrCmp($ ARR { $ J },{ 1 } $ ARR J +)> 0){

美元美元美元TMP = { }度{J}.;

ARR { } = J美元美元美元美元ARR { J + 1 };

$ ARR { $ J + 1 } = $ TMP;

}

/ /如果第二个参数是strnatcmp使用(假)作用大小的比较

其他{ }

如果结果大于0

如果(strnatcmp($ ARR { $ J },{美元美元ARR J + 1 })> 0){

美元美元美元TMP = { }度{J}.;

ARR { } = J美元美元美元美元ARR { J + 1 };

$ ARR { $ J + 1 } = $ TMP;

}

}

}

}

返回的数组; / /排序后的数组

}

print_r(mysort($文件,真的)); / /选择字典序:file1.txt file11.txt file2.txt file22.txt

print_r(mysort($文件,假)); / /根据自然选择排序:file1.txt file2.txt file11.txt file22.txt

>



在PHP中,功能strnatcasecmp(),这个函数忽略了本案的情况是相同的strnatcmp()函数。