HTML 3表列中所有图像的PHP foreach循环

HTML 3表列中所有图像的PHP foreach循环,php,Php,嗨,我是PHP和本网站的新手,所以请友好:) 我目前在处理下面的PHP foreach代码时遇到了问题,因为我试图回显HTML表3列中的所有图像,但它只回显2 更新:感谢盖伊的评论,我已经解决了一些问题,谢谢。然而,我现在遇到了另一个令人困惑的问题。 基本上,如果文件夹中有一张图片,它会回显这张图片,但是如果我把两张图片放在那里,它会回显为4,1第一张图片回显为2,第二张图片回显为2。基本上显示4个图像,即使我在该文件夹中有2个图像。我似乎无法解决这个问题 代码如下: <?php // g

嗨,我是PHP和本网站的新手,所以请友好:)

我目前在处理下面的PHP foreach代码时遇到了问题,因为我试图回显HTML表3列中的所有图像,但它只回显2

更新:感谢盖伊的评论,我已经解决了一些问题,谢谢。然而,我现在遇到了另一个令人困惑的问题。

基本上,如果文件夹中有一张图片,它会回显这张图片,但是如果我把两张图片放在那里,它会回显为4,1第一张图片回显为2,第二张图片回显为2。基本上显示4个图像,即使我在该文件夹中有2个图像。我似乎无法解决这个问题

代码如下:

<?php
// get images
$images = glob($imagedir.'/' . "*.png");
$i = 0;
echo'<table><tr>';
foreach($images as $image)
{
    $i++;
   echo '<td><img src="'.$image.'" height="200"></td>';
   if($i == 3)
   {
       echo '</tr><tr>';
       $i = 0;
   }
}
echo '</tr></table>';
?>


提前感谢

您提供的用于呈现HTML的代码很好。 如果有重复项,则imagedir的内容一定是错误的

几句话:

  • glob($imagedir./'.*.png”)
    还包括以
    .png
    结尾的目录
  • 根据图像的数量,最后一个表格行不会完全充满表格单元格
  • 最好不要在php文件的末尾使用php结束标记
    ?>
  • 我修改了你的代码,以避免上述问题。 我相信还有更多的方法可以做到这一点,但首先想到的是这一点

    <?php
        $imagedir = 'images';
        //Get *.png files only
        $images = array_filter(glob("$imagedir/*.png"), 'is_file');
    
        //Make image array divisble by 3 (columns)
        while (count($images) % 3 != 0) {
            $images[] = '';
        }
    
        echo'<table><tr>';
        for ($i = 1; $i <= count($images); $i++) {
            //Render TD if $image is not empty
            if ($images[$i-1] != '' != '') {
                echo '<td><img src="' . $images[$i-1] . '">', "<br>Image $i</td>";
            }
            //Close table row after 3 TD's
            if($i % 3 == 0) 
            {
                echo '</tr><tr>';
            }
        }
        echo '</tr></table>';
    

    在执行foreach循环时,不要打开和关闭PHP。另外,foreach循环不是以
    endforeach
    结尾,而是以一个大括号
    }
    结尾。foreach
    的一个例子,他使用了相同的替代语法,validOk,这对我来说是新的,以前从未见过。我的错。你有没有检查你的数组,打印($images);它真的是content 3值吗?嘿,我想你更新的问题可能与你在if语句中将$I变量重置为0有关。