après avoir utilisé les fichiers = new DirectoryIterator () $ en PHP, comment voulez-vous trier les articles?

StackOverflow https://stackoverflow.com/questions/1076881

  •  21-08-2019
  •  | 
  •  

Question

On peut obtenir les fichiers dans un répertoire en PHP par

$files = new DirectoryIterator() 

après est-il un moyen facile de trier les éléments dans un ordre particulier pour les afficher? merci.

Était-ce utile?

La solution

Il ne semble pas comme il y a une façon de trier les données dans le iterator.

Vous pouvez placer les données d'affichage dans un tableau intermédiaire, avec une clé de la valeur que vous souhaitez trier par, et appelez ksort () sur le tableau. Cela prendra deux passes sur les données cependant.

$path = ".";
$files = new DirectoryIterator($path);
$files_array = array();

while($files->valid()) {
        // sort key, ie. modified timestamp
        $key = $files->getMTime();
        $data = $files->getFilename();
        $files_array[$key] = $data;
        $files->next();
}
ksort($files_array);
foreach($files_array as $key => $file){
    print $key . " => " . $file . "\n";
}

edit:

si vous placez toutes les informations que vous voulez afficher les fichiers dans les valeurs de tableau, vous pouvez simplement imploser () le tableau après, au lieu de boucle à travers les données une nouvelle fois.

Autres conseils

$files = new DirectoryIterator($path);
$i = 0;
$paths = array();
while($files->valid()) {
    $paths[$i++] = $files->getFileName();
    $files->next();
}
sort($paths)

Peut-être ce que vous cherchez, vous pouvez toujours appliquer bien sûr la fonction de tri pour trier les chemins en fonction de vos préférences après.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top