2013-05-18 5 views
0

TIA. С моими исправленными навыками PHP я не могу понять, почему скандир не сортируется автоматически по алфавиту. (Было бы неплохо иметь папки, сгруппированные вместе и отсортированные по алфавиту и файлы, сгруппированные вместе и отсортированные по алфавиту, но это не критично.) Что мне не хватает?PHP Scandir не автоматически в алфавитном порядке?

<?php 
$dir = './customers/' . $customer . "/"; 
$exclude = array(".","..",".htaccess"); 
    if (is_dir($dir)) { 
     $files = scandir($dir); 
     foreach($files as $key=>$dir){ 
      if(!in_array($dir, $exclude)){ 
    echo ("<a href=\"./customers/$customer/".$dir."\">".$dir."</a><br>"); 
     } 
    } 
} 
?> 
+0

REVISED: Каталог упорядочиваются по алфавиту правильно, когда первая буква _все_ имена файлов строчными буквами (или, я полагаю, когда первая буква имен _all_ файлов имеет верхний регистр). Есть ли способ сохранить их в алфавитном порядке, чтобы первая буква имен файлов была нечувствительной к регистру? – WGD

+0

ПОСТАНОВИЛИ с помощью natcasesort: $ реж) { \t если (in_array ($ реж, $ исключающие)!) { \t эхо ("".$dir."
"); } } } ?> Надеюсь, это поможет кому-то. – WGD

+0

Если у вас есть ответ, вы должны отправить его как ответ (а не комментарий) и пометить его принятым. – Kuitsi

ответ

0

Как сказал WGD, вы должны использовать natcasesort следующим образом:

$files = scandir($dir); 
natcasesort($files); 
foreach ($files as $file) { 
    // your code 
} 
Смежные вопросы