In PHP sind der String -Vergleich und die Übereinstimmung sehr häufige Operationen. Wenn wir uns mit dieser Art von Problem befassen, müssen wir häufig den Fall für Fuzzy -Matching ignorieren. PHP liefert viele String -Manipulationsfunktionen, um diese Anforderung zu erfüllen, unter der die Funktion der StrnatCasecmp ein sehr praktisches Instrument ist.
StrnatCasecmp ist eine integrierte Funktion in PHP, die zwei Zeichenfolgen vergleicht und den Fall ignoriert. Beim Vergleich wird diese Funktion die natürliche Sortierung von Zahlen berücksichtigt, dh wenn die Zeichenfolge Zahlen enthält, vergleicht sie basierend auf dem Wert der Zahl, nicht nur durch den ASCII -Code des Zeichens. Dies macht Strnatcasecmp besonders geeignet, um Zeichenfolgen zu verarbeiten, die Zahlen enthalten, z. B. Versionsnummern oder andere Text mit Zahlen.
int strnatcasecmp ( string $str1 , string $str2 )
$ str1 : Die erste String, die zu vergleichen ist.
$ str2 : Die zweite Zeichenfolge, die zu vergleichen ist.
Rückgabewert:
Wenn die beiden Saiten gleich sind, geben Sie 0 zurück.
Wenn die erste Zeichenfolge kleiner als die zweite Zeichenfolge ist, wird eine negative Zahl zurückgegeben.
Wenn die erste Zeichenfolge größer als die zweite Zeichenfolge ist, wird eine positive Zahl zurückgegeben.
Um eine Fuzzy -String -Übereinstimmung zu erreichen, die den Fall ignoriert, müssen wir nur die STRNATCASECMP -Funktion zum Vergleich verwenden, da die Funktion selbst automatisch den Fall ignoriert. Hier ist ein Beispiel für die praktische Anwendung:
<?php
// Zwei Saiten definieren
$string1 = "Version 1.10";
$string2 = "version 1.2";
// verwenden strnatcasecmp Funktionen führen Fuzzy -Vergleiche durch, die den oberen und unteren Fall ignorieren
if (strnatcasecmp($string1, $string2) == 0) {
echo "Zwei Saiten sind gleich。";
} else {
echo "Zwei Saiten sind nicht gleich。";
}
?>
Ausgangsergebnis:
Zwei Saiten sind nicht gleich。
Strnatcasecmp ist nicht nur ein einfacher Ignorierfall, sondern auch in einer natürlichen Reihenfolge. Dies bedeutet, dass wenn eine Zeichenfolge Zahlen enthält, PHP eher nach dem tatsächlichen Wert der Zahlen als in der ASCII -Reihenfolge der Zeichen sortiert. Zum Beispiel:
<?php
// Vergleiche Versionsnummern
$version1 = "Version 2.10";
$version2 = "Version 2.2";
// verwenden strnatcasecmp Einen Vergleich machen
if (strnatcasecmp($version1, $version2) == 0) {
echo "Gleichversion。";
} else {
echo "Versionen sind nicht gleich。";
}
?>
Ausgangsergebnis:
Versionen sind nicht gleich。
In diesem Beispiel wird 2.10 als größer als 2,2 angesehen, was mit unserer intuitiven Art der Sortierung von Zahlen übereinstimmt.
In der tatsächlichen Entwicklung müssen wir möglicherweise die String -Übereinstimmung mit URL -Adressen kombinieren, insbesondere beim Vergleich von Zeichenfolgen aus verschiedenen Quellen. Hier können wir Strnatcasecmp verwenden, um zwei URLs zu entsprechen, die ihren Fall ignorieren. Hier ist ein Beispiel:
<?php
// zwei URL Saite
$url1 = "https://gitbox.net/user/abc";
$url2 = "https://gitbox.net/user/ABC";
// verwenden strnatcasecmp Vergleichen URL
if (strnatcasecmp($url1, $url2) == 0) {
echo "这zwei URL gleich。";
} else {
echo "这zwei URL 不gleich。";
}
?>
Ausgangsergebnis:
这zwei URL gleich。
Durch die Verwendung der STRNATCASECMP -Funktion können PHP -Entwickler Fuzzy -String -Vergleiche problemlos implementieren, die den oberen und unteren Fall ignorieren, und beim Vergleichen automatisch die natürliche Sortierung von Zahlen berücksichtigen. Unabhängig davon, ob es sich um eine einfache Zeichenfolge oder eine Zeichenfolge mit Versionsnummern oder -zahlen handelt, ist StrnatCasecmp eine sehr praktische Funktion. In Kombination mit Anwendungsszenarien in der tatsächlichen Entwicklung wie dem URL -Vergleich können wir leicht intelligentere String -Matching -Vorgänge erzielen.