2014-12-04 9 views
0

알파벳순으로 폴더 디렉토리를 정렬하는 방법 PHP를 사용하여 폴더를 정렬하려면이 문제를 해결하는 데 도움주세요이 [중복] 게시물 감사합니다.어떻게 알파벳순으로 폴더 디렉토리를 PHP로

이 코드는이 처럼 보여주고있다 (시간을 기준으로 정렬)

  • 고양이
  • 오렌지
  • 애플
  • 인형
  • 물고기
  • 비행기
  • 바나나
  • 코끼리

그리고 난이

ABC

  • 비행기
  • 애플
  • 애플
  • 바나나
  • 처럼 원하는
  • 고양이 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>'; 
     } 
    ?> 
+1

그것은 조금 중복 http://stackoverflow.com/questions/884974/sort-and-display-directory-list- alphabetically-use-opendir-in-php) –

답변

0

이 같은 뭔가 sort에 전화를 교체 :

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

은 또한 당신은 DirectoryIterator 또는 scandir

+0

코드를 바꾸지 만 오류 – user1796164

+0

을 표시합니다. 오류 메시지를 알지 못하면 아무도 도와 줄 수 없습니다. 게시 된 코드가 작동해야합니다. 예 : http://3v4l.org/gc2qg – Rangad

+0

오류를 참조하십시오 http://3v4l.org/nc4aK – user1796164

0

당신은 위해 scandir를 사용하여 시도해야()를 사용하여 코드의 복잡성을 감소 할 수 있습니다. 기본적으로 위해 scandir()는 순으로 파일을 정렬합니다

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

print_r($files1); 

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