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

何が問題なのかわからず、変数をエコーアウトするたびに、$i11111111111111111111111111111111111111111 のようにエコーアウトします。

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>';
}

また、「center」タグは使用しないでください。廃止予定です。CSS を使用してコンテンツを配置します。

また、厳密に言えば、これは HTML テーブルの目的ではありません。確かにそれらはうまく機能します。実際、それらは「適切な」ソリューションよりもうまく機能しますが、正しくはありません。それでも、簡単な修正が必要な場合は、先に進んでそれらを使用してください. 実際にそうしても問題はありません。

于 2012-05-16T04:31:28.663 に答える