Możemy dostać plików w katalogu w PHP przez
$files = new DirectoryIterator()
po to istnieje prosty sposób aby posortować elementy w określonej kolejności do ich wyświetlania? dzięki.
Możemy dostać plików w katalogu w PHP przez
$files = new DirectoryIterator()
po to istnieje prosty sposób aby posortować elementy w określonej kolejności do ich wyświetlania? dzięki.
Nie wygląda na to, że istnieje sposób sortowania danych w iteratorze.
Możesz umieścić dane wyświetlacza w pośredniczącej tablicy, z kluczem wartości, którą chcesz posortować, i wywołać ksort() w tablicy. To zajmie jednak dwa podania danych.
$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:
jeśli umieścisz wszystkie informacje, które chcesz wstawić do plików w wartości tablicy, można po prostu implozji() tablica potem, zamiast pętli przez dane raz jeszcze raz.
$files = new DirectoryIterator($path);
$i = 0;
$paths = array();
while($files->valid()) {
$paths[$i++] = $files->getFileName();
$files->next();
}
sort($paths)
Może być tym, czego szukasz, możesz oczywiście zastosować funkcję sortowania, aby posortować ścieżki w zależności od preferencji.
@ 動靜 能量 - Czy jesteś chiński? –
[salathe/spl-examples - Sortowanie Iteratory] (https://github.com/salathe/spl-examples/wiki/Sorting-Iterators) – hakre