2009-07-02 36 views
5

Biz onları görüntülemek için belirli bir sırayla öğeleri sıralamak için kolay bir yol olduğunu sonra

$files = new DirectoryIterator() 

tarafından PHP bir dizindeki dosyaları alabilirim? Teşekkürler. Yineleyici içindeki verileri sıralamak için bir yol yoktur gibi

+0

@ 動靜 能量 - Eğer Çince musunuz? –

+2

[Salathe/SPL-örnekler - Sınıflandırma Tekrarlayıcılar] (https://github.com/salathe/spl-examples/wiki/Sorting-Iterators) – hakre

cevap

9

görünmüyor.

Sen sıralatmak istediğiniz değerin bir anahtarla, bir ara diziye gösterge verileri yerleştirin ve dizi() ksort diyebiliriz. Bu ancak veriler üzerinde iki geçiş alacaktır.

$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"; 
} 

düzenleme: Eğer dizi değerlerinde dosyalar için çıkış istediğiniz tüm bilgileri yerleştirirseniz

, sadece yerine bir kez verileri üzerinden döngü, dizi sonradan) (çöker olabilir tekrar.

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

aradığınız şey olabilir, her zaman elbette bundan sonra tercihinize bağlı yolları sıralamak için sıralama işlevini uygulayabilirsiniz.

İlgili konular