Position actuelle: Accueil> Derniers articles> Comment réaliser le tri naturel des noms de fichiers via Natsort, étapes détaillées

Comment réaliser le tri naturel des noms de fichiers via Natsort, étapes détaillées

gitbox 2025-06-09

Qu'est-ce que le tri naturel?

Le tri naturel est une méthode de tri selon l'ordre littéral des cordes. Contrairement au tri alphabétique traditionnel, Natsort () prend en compte la relation de taille des nombres. Par exemple:

  • file1.txt est devant File2.txt

  • file10.txt est classé derrière file2.txt

Cette méthode de tri est plus conforme à notre façon de penser quotidienne que le simple tri alphabétique.


Utilisez Natsort pour trier les noms de fichiers naturellement

Étape 1: Obtenez le tableau du nom de fichier

Tout d'abord, nous avons besoin d'un tableau contenant des noms de fichiers. Généralement, nous pouvons utiliser la fonction scandir () pour obtenir tous les noms de fichiers dans un répertoire.

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

Ce code renvoie un tableau contenant les noms de tous les fichiers et sous-répertoires dans le répertoire. Notez que Scandir () retournera deux répertoires spéciaux ,. et .. par défaut, nous devrons donc les filtrer.

Étape 2: Trier les noms de fichiers à l'aide de Natsort

Une fois que nous avons obtenu le tableau de nom de fichier, nous pouvons appeler la fonction Natsort () pour trier le tableau.

 natsort($files);

Natsort () triera naturellement les noms de fichiers, de sorte que "file1.txt" est en avance sur "file10.txt".

Étape 3: Afficher le nom de fichier trié

Une fois le tri terminé, nous pouvons sortir le nom de fichier trié via une boucle Foreach .

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

De cette façon, vous pouvez voir une liste de noms de fichiers organisés par ordre naturel.


Exemple de code

En combinant les étapes ci-dessus, le code final est le suivant:

 <?php

// Obtenez tous les fichiers dans le répertoire
$files = scandir('path/to/your/directory');

// Retirer . et .. Table des matières
$files = array_diff($files, array('.', '..'));

// utiliser natsort Trier les noms de fichiers
natsort($files);

// Sortir le nom de fichier trié
foreach ($files as $file) {
    echo $file . "\n";
}

?>

Exemple de sortie

Supposons qu'il existe les fichiers suivants dans le répertoire:

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

Après le tri par Natsort () , la sortie sera:

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

Notes sur Natsort et Natsort ()

  • La fonction Natsort () modifie directement le tableau d'origine, il n'est donc pas nécessaire d'attribuer une valeur au nouveau tableau avant d'appeler.

  • Si vous avez besoin d'un tri inversé, vous pouvez utiliser natsort () pour le trier, puis utiliser la fonction array_reverse () .

  • Natsort () est sensible à la casse et peut affecter le résultat de tri si le nom de fichier contient des lettres majuscules. Si vous devez ignorer le tri des cas, vous pouvez convertir le nom du fichier en minuscule ou en majuscule unifié avant d'appeler Natsort () .

Par exemple:

 // Convertir le nom du fichier en minuscules
$files = array_map('strtolower', $files);
natsort($files);