我有一个嵌套在循环中的循环。所有数据显示正常,直到我进入第二个循环并且返回的数据不断重复。它达到了第二个循环中项目的歌曲重复超过 15 次的地步。
项目-子项目
项目-子项目-子项目
项目-子项目-子项目-子项目
项目-子项目-子项目-子项目-子项目
我被告知要清除我的循环,但我知道该怎么做。有什么想法吗?如果需要,这里有一个实时示例:view-source:http://mixtapemonkey.com/json
<?php
include ("connection.php");
foreach($db->query("SELECT * FROM mixtapes WHERE year='2014' OR year = '2015' ORDER BY id DESC LIMIT 24") as $info) {
echo "mixtape-".$info['id']," {'n";
echo "'t'"id'" : '"".$info['id']."'",'n";
echo "'t'"title'" : '"".$info['title']."'",'n";
echo "'t'"name'" : '"".$info['name']."'",'n";
echo "'t'"genre'" : '"".$info['genre']."'",'n";
echo "'t'"year'" : '"".$info['year']."'",'n";
echo "'t'"downloads'" : '"".$info['downloads']." Downloads'",'n";
echo "'t'"thumb'" : '"http://mixtapemonkey.com/".$info['thumb']."'",'n";
echo "'t'"songs'" : {'n";
if ($handle = opendir("mixtapes/zip/".$info['id'])) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "mixtapes/zip/".$info['id'] && $entry != "mixtapes/zip/".$info['id']) {
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")
{
$item = "mixtapes/zip/".$info['id']."/".$entry."/";
$musicarray[] = $newentry;
sort($musicarray);
}
}
}
closedir($newhandle);
}
}
}
closedir($handle);
}
foreach ($musicarray as $song) {
echo "'t't'"track'" : '"http://mixtapemonkey.com/$item$song'",'n";
}
echo "'t}'n";
echo "},'n'n";
}?>
我也有一个同样的问题,我解决了它以在循环后使用 php 中断。所以你也可以尝试一下。
break;