Foreach中に1行に2列のデータを表示したいと思います。結果を次のようにしたいと思います。
<table>
<tr><td>VALUE1</td><td>VALUE2</td></tr>
<tr><td>VALUE3</td><td>VALUE4</td></tr>
<tr><td>VALUE5</td><td>VALUE6</td></tr>
</table>
どんな助けでも大歓迎です。
$i=0;
foreach ($x as $key=>$value)
{
if (fmod($i,2)) echo '<tr>';
echo '<td>',$value,'</td>';
if (fmod($i,2)) echo '</tr>';
$i++;
}
これは毎秒TR(行)を出力します
ps:コードをテストしていないので、追加する必要があるかもしれません!最初の反復ではTRを出力しないが、最初の2番目の反復でTRを出力する場合は、fmodの前に署名します。
array_chunk()
を使用して、データの配列を行ごとに小さな配列(この場合は長さ2)に分割できます。
<table>
<?php foreach (array_chunk($values, 2) as $row) { ?>
<tr>
<?php foreach ($row as $value) { ?>
<td><?php echo htmlentities($value); ?></td>
<?php } ?>
</tr>
<?php } ?>
</table>
値の数が奇数の場合、これにより最終行にセルが1つだけ残ることに注意してください。必要に応じて空のセルを追加する場合は、外側のforeach
内の$row
の長さを確認できます。
これはあなたに素晴らしいテーブルとforループの概念を与えるでしょう-
<table border="1" cellspacing="0" cellpadding="2">
<?php
for($x=1; $x<=20; $x++)
{
echo "<tr>";
for($y=1; $y<=20; $y++)
{
echo "<td>";
echo $x*$y;
echo "</td>";
}
echo "</tr>";
}
?>
</table>