2 回答

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊
您必須使用此。
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
$files[] = $file;
}
sort($files);
$clength = count($files);
for ($x = 0; $x < $clength; $x++) {
echo $files[$x];
echo "<br>";
}
}
更新
$files[] = strtolower($file); // for ignore first letter capital

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊
要回答您的問題,您需要首先收集所有文件,然后立即對其進(jìn)行排序。因此您的代碼看起來像-
<?php
while (false !== ($file = readdir($handle))) {
$files[] = $file;
}
sort($files);
但是,更好的選擇是只使用scandir(),它會(huì)向您返回目錄中的文件列表(包括文件夾),然后您可以對它們進(jìn)行相應(yīng)的排序。
我使用過usort(),以按字母順序?qū)ξ募M(jìn)行排序,而忽略了大寫或小寫,同時(shí)保留了文件名的原始表示形式。
代碼:
<?php
$files = array_diff(scandir(YOUR_DIRECTORY_PATH_HERE),array(".",".."));
usort($files,function($file1,$file2){
return strcmp(strtolower($file1),strtolower($file2));
});
print_r($files);
我已經(jīng)使用array_diff()刪除了.和..,并且包含在的結(jié)果中scandir().
- 2 回答
- 0 關(guān)注
- 185 瀏覽
添加回答
舉報(bào)