【问题标题】:How to format a table to display images in PHP如何格式化表格以在 PHP 中显示图像
【发布时间】:2017-07-25 16:14:28
【问题描述】:

我有一个数组中的图像,我希望它们显示在具有 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 一样回显。

【问题讨论】:

    标签: php image loops foreach html-table


    【解决方案1】:

    改一下

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

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

    【讨论】:

    • 哦,我明白了。是因为当代码@foreach 循环完成的时候?变量 $i 会再次回到 0 吗?正确的?因此 $i++ 会被忽略吗? XD
    【解决方案2】:

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

    【讨论】:

    • 只要照 Satya 所说的去做,$i 的值就会改变。
    【解决方案3】:

    在 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;>
    

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

    【讨论】:

      【解决方案4】:

      我发现对这种事情使用 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-11-15
        • 2011-04-17
        • 2011-09-02
        • 1970-01-01
        • 1970-01-01
        • 2014-04-26
        • 1970-01-01
        • 2023-02-17
        • 1970-01-01
        相关资源
        最近更新 更多