0

次のコードがあります。

for($i=0; $i<count($gallery);$i++)
{
    $temp = array();
    $temp = $gallery[$i];
    echo "<img src='". $temp->path . "' />";

}

これで、このコードはコンテンツを 1 行で出力します。行ごとに3つだけ印刷してから、新しい行を作成して別の3つを印刷したいなどです。これはどのように行うことができますか?

サポートに感謝します:)

編集:エラー

PHP エラーが発生しました

重大度: 通知

メッセージ: 未定義のオフセット: 5

ファイル名: views/profile.php

ライン番号: 105

PHP エラーが発生しました

重大度: 通知

メッセージ: 非オブジェクトのプロパティを取得しようとしています

ファイル名: views/profile.php

ライン番号: 106

4

4 に答える 4

5

できるよ

$n = 3;
echo "<table><tr>";
for($i=0; $i<count($gallery);$i++){
    $temp = array();
    $temp = $gallery[$i];
    echo "<td><img src='". $temp->path . "' /></td>";
    if($i % $n ==0 && $i!=0 ){
        echo "</tr><tr>";
    }
}
echo '</tr></table>';

編集:

「正しい」方法でそれを行いたい場合、つまり構文的に正しい HTML を作成するには、次のことを行う必要があります。

$n = 3;
echo "<table><tr>"; 
$gallery_count = count($gallery);
for($i=0; $i<$gallery_count; $i++){
    $temp = array();
    $temp = $gallery[$i];
    echo "<td><img src='". $temp->path . "' /></td>";

    if($i != 0){
        if($i % $n == 0 && $i != $gallery_count-1){
            echo "</tr><tr>";
        }
        else{
            echo ""; //if it is the last in the loop - do not echo
        }
    }
}

//example - if the last 2 `td`s are  missing:
$padding_tds  = $gallery_count % $n;
if($padding_tds != 0 ){
    $k = 0;
    while($k < $padding_tds){
       echo "<td>&nbsp;</td>";
    }
}
echo '</tr></table>';
于 2013-04-17T20:32:06.153 に答える
0

それぞれが正しく見えるようにフォーマットされるので、表でそれを作り直しました。テーブルを解放するためにif文を少し追加しただけなので、ちょっと面倒です。

<table>
<?php
$number_per_row = 3;
for($i=0; $i<count($gallery);$i++)
{
    $temp = array();
    $temp = $gallery[$i];
    if(($i % $number_per_row) == 0) {
        echo "<tr>";
    }
    ?>
<td><?php echo "<img src='". $temp->path . "' />"; ?></td>
<?php
    if(($i % $number_per_row) == $number_per_row - 1) {
        echo "</tr>";
    }
}
?>
</table>
于 2013-04-17T20:47:29.450 に答える
0

印刷された数をチェックする必要があるだけですmodulus.3の倍数はブレークを追加します.

$x=0;
for($i=0; $i<count($gallery);$i++)
{
    $x++;       
    $temp = array();
    $temp = $gallery[$i];
    echo "<img src='". $temp->path . "' />";
    if (($x%3)==0) { echo "<br />"; }

}
于 2013-04-17T20:33:42.773 に答える
-1
$n = 3;
echo "<table>";
echo "<tr>";
for($i=0; $i<count($gallery);$i++){
    if(($i % n ==0) && ($i != 0)){
        echo "</tr><tr>";
    }
    $temp = array();
    $temp = $gallery[$i];
    echo "<td><img src='". $temp->path . "' /></td>";
}
echo "</tr>";
echo '</table>';``
于 2013-04-17T20:46:16.480 に答える