In PHP müssen wir oft Saiten vergleichen. Insbesondere wenn wir Zeichenfolgen verarbeiten, die unterschiedliche obere und untere Fallbuchstaben enthalten, können direkte Vergleichsfunktionen wie STRCMP () oder STRCASECMP ( ) zu unerwarteten Ergebnissen führen. In diesem Fall bietet die Funktion von StrnatCasecmp () eine effizientere und intelligentere Vergleichsmethode, insbesondere bei Vergleiche von gemischten Fallketten. In diesem Artikel wird die Verwendung der Funktion von strnatcasecmp () vorgestellt und zeigen, wie er dazu beitragen kann, dass häufig String -Vergleichsprobleme gelöst werden können.
StrnatCasecmp () ist eine String -Vergleichsfunktion in PHP, die zwei Zeichenfolgen unter Berücksichtigung der natürlichen Sortierung (d. H. Wörtliche Reihenfolge) und des Ignorierens des Falls vergleicht. Diese Funktion ähnelt Strcmp () und strCasecmp () , bietet jedoch eine "natürlichere" Art zum Vergleich von Zeichenfolgen, insbesondere beim Vergleich von Zeichenfolgen, die Zahlen enthalten.
Die Syntax dieser Funktion lautet wie folgt:
int strnatcasecmp ( string $str1 , string $str2 )
Parameterbeschreibung :
$ str1 : Die erste String, die zu vergleichen ist.
$ str2 : Die zweite Zeichenfolge, die zu vergleichen ist.
Rückgabewert :
Wenn $ str1 weniger als $ str2 ist, wird eine negative Zahl zurückgegeben.
Wenn $ str1 gleich $ str2 ist, return 0;
Wenn $ str1 größer als $ str2 ist, wird eine positive Zahl zurückgegeben.
Im Gegensatz zu StrCasecmp () verwendet Strnatcasecmp () eine "natürliche Sortier" -Methode, die nach dem Wert einer Zahl und nicht nach dem ASCII -Wert eines Zeichens sortiert wird.
Die Verwendung von StrCasecmp () direkt beim Umgang mit gemischten Fallzeichenfolgen kann zu intuitionstechnischen Vergleichsergebnissen führen. Zum Beispiel wird in normalen String -Vergleiche 'Apple' als kleiner als 'Banane' angesehen, aber wir wollen diese Saiten auf natürliche Weise verarbeiten, z. B. beim Vergleich von "Apple" und "Apple", sie sind gleich.
Hier ist ein einfaches Beispiel, das zeigt, wie die Funktion von StrnatCasecmp () verwendet wird, um zwei Zeichenfolgen zu vergleichen und ihren Fall zu ignorieren:
<?php
$str1 = "apple";
$str2 = "Apple";
if (strnatcasecmp($str1, $str2) == 0) {
echo "Stringgleichheit\n";
} else {
echo "Saiten sind nicht gleich\n";
}
?>
Ausgangsergebnis:
Stringgleichheit
Obwohl sich "Apple" und "Apple" in diesem Beispiel in diesem Beispiel unterscheiden, behandelt Strnatcasecmp () sie als gleich. Diese natürliche Sortiermethode ist in der tatsächlichen Entwicklung sehr nützlich, insbesondere bei Operationen wie Benutzereingabe und Dateinamensortierung.
Einer der bedeutendsten Vorteile von StrnatCasecmp () ist die Fähigkeit, mit Zahlen und Buchstaben gemischte Zeichenfolgen effektiv umzugehen. In diesem Fall sortiert Strnatcasecmp () im Gegensatz zu Strcmp () , der nur basierend auf dem ASCII -Wert des Zeichens vergleicht.
Zum Beispiel:
<?php
$str1 = "file10";
$str2 = "file2";
if (strnatcasecmp($str1, $str2) < 0) {
echo "$str1 Weniger als $str2\n";
} else {
echo "$str1 Größer als $str2\n";
}
?>
Ausgangsergebnis:
file10 Weniger als file2
In diesem Beispiel würde StrnatCasecmp () denken, dass 'file10' eher vor "Datei2" statt Strcmp () der Meinung ist, dass "file10" größer als "Datei2" ist.
Angenommen, wir haben eine Reihe von Zeichenfolgen, die gemischte Gehäuse und Zahlen enthalten, die wir auf natürliche Weise sortieren möchten. Sie können StrnatCasecmp () und usort () verwenden, um zu implementieren:
<?php
$array = ["file10", "file2", "file1", "File9", "file20"];
usort($array, "strnatcasecmp");
print_r($array);
?>
Ausgangsergebnis:
Array
(
[0] => file1
[1] => file2
[2] => file9
[3] => file10
[4] => file20
)
Wie oben gezeigt, stellt Strnatcasecmp () sicher, dass wir das Array in natürlicher Reihenfolge korrekt sortieren.
StrnatCasecmp () ist eine sehr nützliche PHP -String -Vergleichsfunktion, insbesondere für String -Vergleiche, die Fall, Zahlen und Buchstaben mischen. Es bietet eine natürliche Sortiermethode, die Verwirrung vermeiden kann, die durch gewöhnliche String -Vergleichsfunktionen wie StrCasecmp () und Strcmp ( ) verursacht wird. StrnatCasecmp () ist eine sehr effektive Wahl beim Umgang mit Dateinamen, Benutzereingaben oder wenn Sie gemischte Zeichenfolgen sortieren müssen.
Wenn Sie mehr über die Verarbeitungs- und Vergleichsfunktionen für Zeichenfolge erfahren möchten, sind die folgenden Ressourcen für Sie möglicherweise hilfreich: