PHP显示文件列表重复

时间:2013-07-10 17:53:00

标签: php duplicates

我的代码有问题,我有一个列出目录中文件的例程,你可以选择其中一个对应一些表条目(在这种情况下,文件与特定的mp3相关联)。我在下面设计的代码列出了第一个条目的所有文件,但第二个条目列出了所有文件两次。我不明白出了什么问题......

for ($k=0; $k < $_SESSION[CampaignTrax]; $k++) {
                        $numIncrement = $k +1;

$artistConcentrate = $_POST["ArtistField_".$numIncrement];
$titleConcentrate = $_POST["TitleField_".$numIncrement];
$mixConcentrate = $_POST["MixField_".$numIncrement];
$trackfileConcentrate = "trackFile".$numIncrement;

$myDirectory = opendir(".");

while($entryName = readdir($myDirectory)) {
    $dirArray[] = $entryName;
}

closedir($myDirectory);

$indexCount = count($dirArray);

sort($dirArray);

echo "<tr><td>".$numIncrement."</td><td>".$artistConcentrate."</td><td>".$titleConcentrate."</td><td>".$mixConcentrate."</td><td><select name=\"".$trackfileConcentrate."\"><option value=\"\">Select File...</option>";

 for($index=0; $index < $indexCount; $index++) {
        if (substr("$dirArray[$index]", 0, 1) != ".") { // don't list hidden files
 echo "<option value=\"".$dirArray[$index]."\">".$dirArray[$index]."</option>";
 }

}

echo"</select></td></tr>";
}

echo "</table>";

这可能是一件简单的事情,并且一如既往都有所帮助。

CP

1 个答案:

答案 0 :(得分:0)

问题是,下次循环父“for”循环时,dirArray的旧值仍然存在。您需要做的就是在每次填充之前将其初始化为空数组。

变化:

while($entryName = readdir($myDirectory)) {
    $dirArray[] = $entryName;
}

为:

$dirArray = array();
while($entryName = readdir($myDirectory)) {
    $dirArray[] = $entryName;
}

您也可以将其更改为:

$dirArray = scandir($myDirectory);