在PHP中的另一个foreach中使用foreach循环?

时间:2013-12-07 16:51:13

标签: php foreach gallery glob

我使用PHP创建了一个简单的图库,其中文件夹中的图像(让我们称之为主文件夹)显示在网站的特定部分上,这非常有效。

但我决定更进一步,根据主文件夹中的文件夹创建不同的类别,PHP脚本找到所有文件夹,并使用代码创建以文件夹命名的div;

<?php
foreach(glob('images/*', GLOB_ONLYDIR) as $directories) {
    echo ("<div id='$directories'>");
    echo ("<h1>$directories</h1>");
    foreach(glob('$directories/*') as $image) {

        echo ("<img src='$image' width='300'>");

    }
    echo ("</div>");

}
?>

但是它里面的foreach并没有显示任何东西,虽然它在第一个foreach之外工作正常。我正在寻找的结果是PHP搜索文件夹后的文件夹图像,当它找到一个时,创建一个div,然后在里面写下文件夹名称,然后显示该特定文件夹内的所有图像 - 然后继续下一个并重复,有没有人知道出了什么问题?

我在答案之后通过互联网和这个网站进行了搜索,但所有这些都更加先进,而且没有一个使用glob。所以我现在在这里问。

提前致谢!

2 个答案:

答案 0 :(得分:2)

foreach循环没问题,但是当你想要interpolate a variable into a string时需要使用双引号。我想你错过了那个。内部foreach应如下所示:

foreach(glob("$directories/*") as $image) {

如果你问我,我会将变量命名为$directory(单数)。这似乎更合适。

答案 1 :(得分:1)

尝试使用,在foreach循环中替换"而不是'

foreach(glob("$directories/*") as $image) {

而不是

foreach(glob('$directories/*') as $image) {