PHP foreach 循环嵌套增加了重复


php foreach loop nested increased repeating

我有一个嵌套在循环中的循环。所有数据显示正常,直到我进入第二个循环并且返回的数据不断重复。它达到了第二个循环中项目的歌曲重复超过 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;