我需要从2个不同的文件夹中加载图像,每个缩略图都有相关的大版本(同名,不同的文件夹) 我在大图片文件夹中有3个文件,在thumb文件夹中有3个文件,我有9个链接!每个缩略图重复3次或x倍于主文件夹中的图片数量
这是代码:
<?php
foreach (glob("images/*.jpg") as $large)
foreach (glob("images/thumbs/*.jpg") as $thumb)
{
echo ("<div class='thumbnail'><a href='$large'><img src='$thumb'/></a></div>");
}
?>
如果我颠倒了foreach glob线的顺序,我得到的链接是缩略图数量的x倍。我希望自己能够理解,我是新手 谢谢!
答案 0 :(得分:3)
你的两个重叠的foreach实际上意味着:
thumbs
thumbs
所以,总共9次迭代: - )
如果您想要不是用拇指环绕图像,则只需要第一个。
如果你只想用拇指环绕图像,你只需要第二个。
如果你想要所有的图像:同时使用大+拇指,如果大图像与拇指同名,你只需要一个循环来获取文件的名称。
如果您拥有该名称,则会在其前面添加“images/thumbs/
”或“images/
”,具体取决于您想要的图像。
未经测试,但这样的事情可能有所帮助:
$counter = 0;
foreach (glob("images/thumbs/*.jpg") as $pathToThumb)
{
$filename = basename($pathToThumb);
$pathToLarge = 'images/' . $filename;
echo ("<div class='thumbnail'><a href='$pathToLarge'><img src='$pathToThumb'/></a></div>");
$counter++;
}
答案 1 :(得分:0)
我想一个解决方案是将'glob'返回到一个数组并以这种方式引用它:
<?php
$largeArray = glob("images/*.jpg");
$counter = 0;
foreach (glob("images/thumbs/*.jpg") as $thumb)
{
echo ("<div class='thumbnail'><a href='$largeArray[$counter]'><img src='$thumb'/></a></div>");
$counter++;
}
?>