сортировка — как отсортировать каталоги по алфавиту с помощью переполнения стека

как отсортировать каталог папки по алфавиту с помощью php
Пожалуйста, помогите мне решить эту проблему, и это не [дубликат] сообщения спасибо.

этот код показывает вот так
(сортировка по времени)

  • Собака
  • Кошка
  • оранжевый
  • яблоко
  • кукла
  • Рыба
  • самолет
  • Банан
  • слон

И я хочу так

азбука

  • самолет
  • яблоко
  • яблоко
  • Банан
  • Кошка

DEF

  • Собака
  • кукла
  • слон
  • Рыба

PHP-код

<?php
function folderlist(){
$startdir = './';
$ignoredDirectory[] = '.';
$ignoredDirectory[] = '..';
if (is_dir($startdir)){
if ($dh = opendir($startdir)){
while (($folder = readdir($dh)) !== false){
if (!(array_search($folder,$ignoredDirectory) > -1)){
if (filetype($startdir . $folder) == "dir"){
$directorylist[$startdir . $folder]['name'] = $folder;
$directorylist[$startdir . $folder]['path'] = $startdir;
}
}
}
closedir($dh);
}
}
return($directorylist);
}$folders = folderlist();
sort($folders);
foreach ($folders as $folder){
$path = $folder['path'];
$name = $folder['name'];echo '<div class="menu">
<h3 class="headerbar"><a href="' .$path .'index2.php?folder=' .$name . '" class="style1"><span class="headertit">' .$name . '</span></a></div>';
}
?>

0

Решение

Замените ваш звонок на sort с чем-то вроде этого:

usort($folders, function ($a, $b) {
return strnatcmp($a['name'], $b['name']);
});

Кроме того, вы можете уменьшить сложность кода с помощью DirectoryIterator или же ScanDir

0

Другие решения

Вы должны попробовать использовать scandir (). По умолчанию scandir () сортирует файлы по алфавиту:

$dir    = './';
$files1 = scandir($dir);

print_r($files1);

http://php.net/manual/en/function.scandir.php

0

По вопросам рекламы [email protected]