Aktueller Standort: Startseite> Neueste Artikel> Wie sortiere ich Strings von mehrsprachigen Zeichensätzen mit StrnatCasecmp?

Wie sortiere ich Strings von mehrsprachigen Zeichensätzen mit StrnatCasecmp?

gitbox 2025-05-19

Beim Umgang mit mehrsprachigen Charakter -Sets müssen wir oft Strings sortieren. Die normale Sortierung der Saiten sortiert normalerweise auf alphabetischer Reihenfolge, aber natürliche Sortierung kann Zahlen und Buchstaben nach menschlicher Gewohnheit sortieren. Die STRNATCASECMP -Funktion in PHP soll dieses Problem lösen. Es kann auf natürliche Weise Strings sortieren, ohne den Fall zu berücksichtigen.

Was ist natürliches Sortieren?

Die natürliche Sortierung ist eine Sortiermethode, bei der Zahlen nach ihren Werten sortiert werden, anstatt nacheinander nacheinander zu vergleichen. Zum Beispiel:

  • "Item1" steht "Item12" voraus.

  • "item2" steht "item21" voraus.

Diese Sortiermethode eignet sich besonders für Zeichenfolgen mit Zahlen wie Dateinamen, Versionsnummern, Produktnummern usw.

Einführung in die Funktion von Strnatcasecmp

Die STRNATCASCMP -Funktion von PHP wird verwendet, um zwei Zeichenfolgen in natürlicher Reihenfolge zu vergleichen. Es ähnelt der StrCaseCMP -Funktion, der Unterschied besteht darin, dass Strnatcasecmp natürliche Sortierregeln annimmt und von Fall unempfindlich ist.

Funktionsprototyp:

 int strnatcasecmp ( string $str1 , string $str2 )
  • $ str1 und $ str2 sind zwei Saiten, die verglichen werden müssen.

  • Rückgabewert: Wenn $ str1 weniger als $ str2 ist, wird eine negative Ganzzahl zurückgegeben. Wenn gleich, eine 0 Return; Wenn $ str1 größer als $ str2 ist, wird eine positive Ganzzahl zurückgegeben.

Wie sortiere ich mehrsprachige Zeichensätze mit strnatcasecmp ?

Für mehrsprachige Saiten kann Strnatcasecmp immer noch auf natürliche Weise sortiert werden. Die Sortierregeln können jedoch zwischen verschiedenen Zeichensätzen variieren. In PHP wird StrnatCasecmp standardmäßig nach UTF-8-Codierung sortiert, sodass es Strings von mehrsprachigen Zeichensätzen verarbeiten kann.

Wenn wir beispielsweise in Arrays mit chinesischen, englischen und anderen Charakteren natürlich sortieren möchten, können wir dies wie folgt tun:

Beispiel: natürliches Sortieren mit strnatcasecmp

 <?php

// Reihe von Saiten, die sortiert werden müssen
$array = [
    'dokumentieren3.txt',
    'dokumentieren1.txt',
    'dokumentieren2.txt',
    'File10.txt',
    'File2.txt',
    'dokumentieren11.txt'
];

// Benutzerdefinierte Sortierfunktionen
usort($array, function($a, $b) {
    return strnatcasecmp($a, $b);
});

// Ausgabe sortiertes Array
print_r($array);

?>

Ausgangsergebnis:

 Array
(
    [0] => dokumentieren1.txt
    [1] => dokumentieren2.txt
    [2] => dokumentieren3.txt
    [3] => File2.txt
    [4] => File10.txt
    [5] => dokumentieren11.txt
)

In diesem Beispiel verwenden wir die Usort -Funktion, um ein Array mit mehreren Zeichensätzen zu sortieren. Durch die Bereitstellung einer benutzerdefinierten Vergleichsfunktion strnatCasecmp implementieren wir die natürliche Sortierung von Dateinamen. Sie können sehen, dass die Nummernsortierung mit den menschlichen Gewohnheiten übereinstimmt, mit Datei 10.txt -Ranking hinter der Datei 2.TXT und File2.txt -Ranking vor Datei10.txt .

Ersetzen Sie den Domänennamen in der URL

Wenn URL -Adressen an der Anwendung beteiligt sind und diese URLs Domänennamen enthalten, müssen Sie möglicherweise den Abschnitt Domänenname ersetzen. Wir können dies durch die String -Verarbeitungsfunktion von PHP tun. Hier ist ein Beispiel, das zeigt, wie ein Domänenname in einer URL durch gitbox.net ersetzt wird.

 <?php

// Ersetzt werden URL
$url = "https://www.example.com/path/to/resource";

// Ersetzen Sie den Domain -Namen
$new_url = preg_replace('/^https?:\/\/[^\/]+/', 'https://gitbox.net', $url);

// Neu ausgeben URL
echo $new_url;  // Ausgabe:https://gitbox.net/path/to/resource

?>

Zusammenfassen

Die STRNATCASECMP -Funktion in PHP ist ein sehr nützliches Werkzeug, insbesondere wenn es sich um Strings von mehrsprachigen Zeichensätzen handelt. Es stellt sicher, dass Saiten nach den Regeln der natürlichen Sortierung verglichen werden, und es wird keine falsche Sortierung durch numerische Bestellprobleme bei der traditionellen Sortierung verursachen. Darüber hinaus können wir mit Hilfe von String -Verarbeitungsfunktionen auch die Domain -Namen in der URL bequem ersetzen, um unterschiedliche Anforderungen zu erfüllen.

Ich hoffe, dieser Artikel hilft Ihnen, besser zu verstehen, wie Sie in PHP auf natürliche Weise sortieren und wie Sie mit URLs umgehen können. Wenn Sie Fragen oder weitere Anforderungen haben, können Sie Fragen stellen!