2013-07-11 55 views
1

我有這個代碼設置爲顯示目錄中的文件,如果他們是歌曲。他們被放入一個不按任何順序組織的列表中。我想按他們的文件名組織這些歌曲。如果我看着我的FileZilla,他們的文件就按文件名組織起來。如何組織從目錄回顯的文件?

例如:

  • 01 - 歌名
  • 02 - 歌名
  • 03 - 歌名

歌曲不會保存在任何數據庫。我試着把歌放到一個數組中,並使用sort(),但是它只是反覆輸出單詞「Array」。我可能做錯了。

,你可以在這裏看到一個例子,他們是如何被髮布隨機:http://mixtapemonkey.com/mixtape?m=637

<?php 
    $mixtapeid = $_GET['m']; 
    $tb_name="mixtapes"; 

    $data = mysql_query("SELECT * FROM $tb_name WHERE id='$mixtapeid'") or die(mysql_error()); 
    $info = mysql_fetch_array($data); 

    if ($handle = opendir("mixtapes/zip/".$info['id'])) { 
     while (false !== ($entry = readdir($handle))) { 
      if ($entry != "mixtapes/zip/".$info['id'] && $entry != "mixtapes/zip/".$info['id']) { 
       $item = "mixtapes/zip/".$info['id']."/".$entry."/"; 

        if ($newhandle = opendir("mixtapes/zip/".$info['id']."/".$entry)) { 
         while (false !== ($newentry = readdir($newhandle))) { 
          if ($newentry != "mixtapes/zip/".$info['id']."/".$entry && $newentry != "mixtapes/zip/".$info['id']."/".$entry) { 

           $ext = substr($newentry, strrpos($newentry, '.') + 1); 
           if ($ext == "mp3" || $ext == "m4a") 
           { 
            echo "<li><a href='$item$newentry'>".basename($newentry, '.mp3')."</a></li>"; 
           } 
          } 
         } 
         closedir($newhandle); 
        } 

      } 
     } 
     closedir($handle); 
    } 
?> 

回答

1

你可能想要的歌曲添加到一個數組,然後調用sort()http://php.net/manual/en/function.sort.php)功能。

變化

if ($ext == "mp3" || $ext == "m4a") 
{ 
    echo "<li><a href='$item$newentry'>".basename($newentry, '.mp3')."</a></li>"; 
} 

​​

然後在後面的代碼,就可以解決這mucis陣列

sort($musicarray);

,如果你得到一個錯誤有關陣列不被定義,您可能需要添加

$musicarray = Array();

在您的代碼的早些時候。

這隻會創建數組而不顯示它。要打印陣列,巨貴圈後,你將需要呼應了從陣列evrey關鍵,像

foreach ($musicarray as $item) 
    echo $item; 

或同等

這是未經測試,所以可能需要一些擺弄獲得工作恰到好處。

+0

由於某些原因,它不會進入數組()。它會列出所有的歌曲,但它們都以0的密鑰出來。我不確定我是否正確地做了這些。 –

+0

一些代碼,看看會不錯 – PlausibleSarge

+0

我發佈的代碼是我目前所有的代碼。如何將一個數組中的'$ newentry'和排序該數組? –