9.4 字符串比较函数

2016-12-19  本文已影响153人  曹渊说创业

9.4 字符串比较函数

PHP中,有多种方法可以对字符串进行比较,除了可以直接使用条件运算符(<, >, ==)加以比较外。
按字节进行字符串的比较
strcmp();(整个比较是否相同)
strncmp();(指定比较长度的字符串比较)
strcasecmp(); (不区分大小写的全串比较)

<?php   
    $userName = "Admin";                            //声明一个字符串作为用户名
    //if(strcasecmp($userName, “admin”) == 0) {     //不区分大小写地比较,相等返回0
    if( strcasecmp(strtolower($userName), strtolower(“admin”)) == 0 ) {  //采用统一小写后比较 
          echo "用户名存在";
    }
    switch(strcmp($ userName, “admin")) {  //区分字符串中字母的大小写比较
          case 0:    echo "两个字符串相等<br>";  break;             //两个字符串相等则返回0 
          case 1:    echo "第一字串大于第二字串<br>";  break;  //第一个字符串大时则返回1
          case -1:   echo "第一字串小于第二字串<br>";  break;  //第一个字符串小时则返回-1
    }

strnatcmp — 使用自然排序算法比较字符串
格式:int strnatcmp ( string $str1 , string $str2 )
该函数实现了以人类习惯对数字型字符串进行排序的比较算法,这就是“自然顺序”。注意该比较区分大小写。
与其他字符串比较函数类似,如果 str1 小于 str2,返回负数;如果 str1 大于 str2,返回正数;二者相等则返回 0。

<?php
     $arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png");

     echo “使用strcmp排顺序后:\n";
     usort($arr1, "strcmp");
     print_r($arr1);
     //[0] => img1.png [1] => img10.png [2] => img12.png [3] => img2.png
     
     echo “\n 使用strnatcmp排序后:\n";
     usort($arr2, "strnatcmp");
     print_r($arr2);
     //[0] => img1.png [1] => img2.png [2] => img10.png [3] => img12.png 
?> 

equals.php

<?php
/*  1. 使用等号比较字符串(常见)
 *
 *      注意: 如果是不区分大小写的进行比较,两个比较的字符串要么都转成大写, 要么都转成小写
 *
 *
 */

    $str1 = "abc";
    $str2 = "Abc";

    if( strtoupper($str1) == strtoupper($str2) ) {
        echo "相等";
    } else {
        echo "不相等";
    }

strcasecmp.php

<?php
/*  1. 使用等号比较字符串(常见)
 *
 *      注意: 如果是不区分大小写的进行比较,两个比较的字符串要么都转成大写, 要么都转成小写
 *
 *
 */

    $str1 = "abc";
    $str2 = "Bbc";

    switch(strcasecmp($str1, $str2)) {
        case 0:
            echo "第一个字符串$str1 等于 第二个字符串 $str2"; break;
        case -1:
            echo "第一个字符串$str1 小于 第二个字符串 $str2"; break;
        case 1:
            echo "第一个字符串$str1 大于 第二个字符串 $str2"; break;
    
    }

strcmp.php

<?php
/*  1. 使用等号比较字符串(常见)
 *
 *      注意: 如果是不区分大小写的进行比较,两个比较的字符串要么都转成大写, 要么都转成小写
 *
 *
 */

    $str1 = "abc";
    $str2 = "Abc";

    switch(strcmp($str1, $str2)) {
        case 0:
            echo "第一个字符串$str1 等于 第二个字符串 $str2"; break;
        case -1:
            echo "第一个字符串$str1 小于 第二个字符串 $str2"; break;
        case 1:
            echo "第一个字符串$str1 大于 第二个字符串 $str2"; break;
    
    }

test.php

<?php
/*  1. 使用等号比较字符串(常见)
 *
 *      注意: 如果是不区分大小写的进行比较,两个比较的字符串要么都转成大写, 要么都转成小写
 *
 *  2. 字符比较 
 *      strcmp()
 *      strcasecmp()
 *
 *  3. 按自然顺序比较
 *      strnatcmp()
 *      strnatcasecmp();
 *
 *
 */

    $arr = array("File1.txt", "file2.txt", "file11.txt", "file12.txt");

    usort($arr, "strnatcasecmp");

    print_r($arr);
上一篇下一篇

猜你喜欢

热点阅读