美文网首页
9.4 字符串比较函数

9.4 字符串比较函数

作者: 曹渊说创业 | 来源:发表于2016-12-19 08:39 被阅读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);
    

    相关文章

      网友评论

          本文标题:9.4 字符串比较函数

          本文链接:https://www.haomeiwen.com/subject/omozmttx.html