Aktueller Standort: Startseite> Neueste Artikel> So erreichen Sie die natürliche Sortierung von Dateinamen durch Natsort, detaillierte Schritte

So erreichen Sie die natürliche Sortierung von Dateinamen durch Natsort, detaillierte Schritte

gitbox 2025-06-09

Was ist natürliches Sortieren?

Natürliche Art ist eine Methode zum Sortieren nach der wörtlichen Reihenfolge der Saiten. Im Gegensatz zur herkömmlichen alphabetischen Sortierung berücksichtigt Natsort () die Größenbeziehung von Zahlen. Zum Beispiel:

  • Datei1.txt befindet sich vor file2.txt

  • Datei10.txt ist hinter Datei2.txt eingestuft

Diese Sortiermethode entspricht mehr mit unserer täglichen Denkweise als mit einer einfachen alphabetischen Sortierung.


Verwenden Sie Natsort, um Dateinamen auf natürliche Weise zu sortieren

Schritt 1: Holen Sie sich das Dateiname -Array

Zunächst benötigen wir ein Array mit Dateinamen. Im Allgemeinen können wir die Funktion Scandir () verwenden, um alle Dateinamen in einem Verzeichnis zu erhalten.

 $files = scandir('path/to/your/directory');

Dieser Code gibt ein Array zurück, das die Namen aller Dateien und Unterverzeichnisse im Verzeichnis enthält. Beachten Sie, dass Scandir () zwei spezielle Verzeichnisse zurückgibt . und .. standardmäßig müssen wir sie möglicherweise filtern.

Schritt 2: Dateinamen mit Natsort sortieren

Sobald wir das Dateiname -Array erhalten haben, können wir die Funktion natsort () aufrufen, um das Array zu sortieren.

 natsort($files);

natsort () sortiert die Dateinamen auf natürliche Weise, so dass "Datei1.txt" vor "Datei10.txt" voraus ist.

Schritt 3: Zeigen Sie den sortierten Dateinamen an

Nach Abschluss der Sortierung können wir den sortierten Dateinamen über foreach Loop ausgeben.

 foreach ($files as $file) {
    echo $file . "\n";
}

Auf diese Weise können Sie eine Liste von Dateinamen sehen, die in natürlicher Reihenfolge angeordnet sind.


Beispielcode

Kombinieren Sie die obigen Schritte und der endgültige Code lautet wie folgt:

 <?php

// Holen Sie sich alle Dateien im Verzeichnis
$files = scandir('path/to/your/directory');

// Entfernen . Und .. Inhaltsverzeichnis
$files = array_diff($files, array('.', '..'));

// verwenden natsort Dateinamen sortieren
natsort($files);

// Ausgeben des sortierten Dateinamens
foreach ($files as $file) {
    echo $file . "\n";
}

?>

Ausgangsbeispiel

Angenommen, es gibt die folgenden Dateien im Verzeichnis:

 file1.txt
file10.txt
file2.txt
file20.txt

Nach dem Sortieren nach Natsort () wird der Ausgang sein:

 file1.txt
file2.txt
file10.txt
file20.txt

Anmerkungen zu Natsort und Natsort ()

  • Die Funktion natsort () modifiziert das ursprüngliche Array direkt, sodass dem Neuarray keinen Wert zuweisen muss.

  • Wenn Sie umgekehrte Sortierung benötigen, können Sie Natsort () verwenden, um es zu sortieren und dann die Funktion array_reverse () zu verwenden.

  • natsort () ist fälschlichempfindlich und kann das Sortierergebnis beeinflussen, wenn der Dateiname Großbuchstaben enthält. Wenn Sie die Fallsortierung ignorieren müssen, können Sie den Dateinamen in einen einheitlichen Kleinbuchstaben oder Großbuchstaben konvertieren, bevor Sie Natsort () aufrufen.

Zum Beispiel:

 // Dateinamen in Kleinbuchstaben konvertieren
$files = array_map('strtolower', $files);
natsort($files);