如何格式化表以在PHP中显示图像

时间:2012-05-16 03:23:48

标签: php image loops foreach html-table

我在数组中有图像,我希望它们显示在 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 个答案:

答案 0 :(得分:3)

更改此

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:2)

在css中尝试使用display:inline-block;。这非常有效。

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

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

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

答案 3 :(得分: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>';
}

另外,不要使用'center'标记,不推荐使用它。使用CSS来对齐内容。

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