2013-07-11 87 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'和排序该数组? –