PHP'nin scandir sonuçlar: sort klasör dosyası tarafından, daha sonra alfabetik

0 Cevap php

scandir için PHP kılavuzu: By default, the sorted order is alphabetical in ascending order.

Ben (Windows) bir dosya tarayıcısı inşa ediyorum, yani adresleri bu subsetlerinde alfabetik sonra, klasör / dosyaya göre sınıflandırılmaktadır iade edilmesini istiyoruz.

Örnek: Şu anda, tarama ve çıkış

Aardvark.txt
BarDir
BazDir
Dante.pdf
FooDir

ben istiyorum

BarDir
BazDir
FooDir
Aardvark.txt
Dante.pdf

Other than a usort ve is_dir() çözüm (Kendimi anlamaya), bunun için hızlı ve etkili bir yolu var mı?

this comment doğru yolda olduğunu yazdı ninja - en iyi yolu nedir?

UPDATE

Bu alex yöntemi, artı bir dosya filtre @, yardımcı varsa:

function globdir($filepath) {
  $dirs   = glob($filepath.'/*', GLOB_ONLYDIR);
  $files  = glob($filepath.'/*');
  $all    = array_unique(array_merge($dirs,$files));
  $filter = array($filepath.'/Thumbs.db');

  return array_diff($all,$filter);
}

Gerekirse, çağrı array_merge bıraktığı boş anahtarlarını kaldırmak için nihai sonuçlar üzerinde array_diff.

0 Cevap