0

我有一个数组中的图像,我希望它们显示在一个有3 列的表中!

很明显,在 HTML 中,它就像:

<table>
    <tr>
        <td><img src="image1.jpg"></td>
        <td><img src="image2.jpg"></td>
        <td><img src="image3.jpg"></td>
    </tr>
    <!-- and so on... -->
</table>

所以我希望它用 PHP 打印出来,但问题是代码。

我的代码是这样的:

    $photos = array(     "image1",
                        "image2",
                        "image3",
                        "image4",
                        "image5",
            );
    foreach ($photos as $photo) {
        $i = 0;
        if ($i < 3) {
            echo '<td><center><img src="'.$photo.'.jpg"></td>';
            $i++;
        } elseif ($i == 3) {
            echo '</tr><tr>';
            $i = 0;
        }
    }

我不知道似乎是什么问题,每次我回显变量$i时,它都会像 11111111111111111111111111111111111111111111 一样回显。

4

4 回答 4

3

改变这个

foreach ($photos as $photo) {
        $i = 0;

$i = 0;
foreach ($photos as $photo) {
于 2012-05-16T03:26:39.060 回答
2

为什么 $i 在 foreach 循环中?应该是这个原因。$i 在每个循环周期开始时被初始化。

于 2012-05-16T03:26:42.453 回答
2

尝试display:inline-block;在 css 中代替。这很好用。

这是一个例子......

<img src="image1.jpg" style="display:inline-block;>
<img src="image2.jpg" style="display:inline-block;>
<img src="image3.jpg" style="display:inline-block;>

您甚至可以询问是否要在图像中添加文本或其他内容...

于 2012-05-16T04:03:51.497 回答
0

我发现对这种事情使用 array_chunk 更优雅。

$chunks = array_chunk($photos, 3);
foreach ($chunks as $chunk)
{
    echo '<tr>';
    foreach ($chunk as $photo)
    {
        echo '<td><img src="', $photo, '.jpg" /></td>';
    }
    echo '</tr>';
}

另外,不要使用“中心”标签,它已被弃用。使用 CSS 对齐内容。

此外,严格来说,这不是 HTML 表格的用途。当然他们工作得很好。实际上,它们比“正确”的解决方案效果更好,但它们是不正确的。不过,如果您只需要快速修复,请继续使用它们。这样做实际上不会导致任何问题。

于 2012-05-16T04:31:28.663 回答