Heim  >  Artikel  >  Backend-Entwicklung  >  So vergleichen Sie die Größe zweier Zeichenfolgen in PHP

So vergleichen Sie die Größe zweier Zeichenfolgen in PHP

王林
王林Original
2019-10-08 11:11:166397Durchsuche

So vergleichen Sie die Größe zweier Zeichenfolgen in PHP

Der Vergleich von Strings ist eine der wichtigen Funktionen der String-Verarbeitungsfunktionen jeder Programmiersprache. Neben der Verwendung von Vergleichsoperatoren (==, 0c55574367f335e00d3ed11372063196) für Vergleiche bietet PHP auch eine Reihe von Vergleichsfunktionen, mit denen PHP komplexere Zeichenfolgenvergleiche durchführen kann. Funktionen wie strcmp(), strcasecmp() und strnatcmp().

1. Vergleichen Sie Zeichenfolgen in Byte-Reihenfolge

Um Zeichenfolgen in Byte-Reihenfolge zu vergleichen, können Sie die Funktionen strcmp() und strcasecmp() verwenden, wobei die Funktion strcasecmp() kann die Groß-/Kleinschreibung von Buchstaben in Zeichenfolgen zum Vergleich ignorieren. Die Prototypen dieser beiden Funktionen lauten wie folgt:

in strcmp(string str1,string str2)               //区分字符串中字母大小写地比较
int strcasecmp(string str1,string str2)                //忽略字符串中字母大小写地比较

Die Verwendung dieser beiden Funktionen ist ähnlich und beide müssen zum Vergleich zwei Zeichenfolgenparameter übergeben. Sie können die Eingabezeichenfolgen str1 und str2 beginnend mit dem ersten Byte der beiden Zeichenfolgen entsprechend dem ASCII-Wert der Bytes vergleichen. Wenn sie gleich sind, wird der Vergleich mit dem nächsten Byte fortgesetzt, bis der Vergleich abgeschlossen ist. Geben Sie einen der folgenden drei Werte zurück:
1. Wenn str1 gleich str2 ist, geben Sie 0 zurück.
2. Wenn str1 größer als str2 ist, wird 1 zurückgegeben.
3. Wenn str1 kleiner als str2 ist, geben Sie -1 zurück.
Im folgenden Programm werden die Größen der beiden verglichenen Zeichenfolgen durch die nach dem Vergleich zurückgegebenen Werte bestimmt. Verwenden Sie die Funktion strcmp(), um zwischen Groß- und Kleinbuchstaben in einer Zeichenfolge zu unterscheiden, und verwenden Sie die Funktion strcasecmp(), um Groß- und Kleinschreibung von Buchstaben in einer Zeichenfolge zu ignorieren. Der Code lautet wie folgt:

<?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. String-Vergleich gemäß natürlicher Reihenfolge

Zusätzlich zum Vergleich gemäß der Wörterbuchreihenfolge bietet PHP auch Strings an nach der Methode der „natürlichen Ordnung“ verglichen. Die sogenannte natürliche Sortierung bezieht sich auf die Sortierung nach den Denkgewohnheiten der Menschen im täglichen Leben, also auf den Vergleich der numerischen Teile in der Zeichenfolge entsprechend der numerischen Größe.

Zum Beispiel ist „4“ beim Vergleich von Bytes größer als „33“, da „4“ größer als das erste Zeichen in „33“ ist und „33“ gemäß der Definition größer als „4“ ist natürliche Sortierregel. Verwenden Sie die Funktion strnatcmp(), um zwei Zeichenfolgen bei der natürlichen Sortierung zu vergleichen. Bei dieser Funktion wird die Groß-/Kleinschreibung beachtet und das Verwendungsformat ähnelt der Funktion strcmp().

Im folgenden Beispiel wird die Blasensortierung verwendet, um Dateinamen mit Zahlen in einem Array mithilfe von zwei Vergleichsmethoden zu sortieren. Der Code lautet wie folgt:

<?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 bietet auch eine Version dieser Funktion, die die Groß-/Kleinschreibung ignoriert. Die Verwendung von strnatcasecmp() ist die gleiche wie die der Funktion strnatcmp().

Empfohlenes Tutorial: PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo vergleichen Sie die Größe zweier Zeichenfolgen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn