我在数组中有图像,我希望它们显示在 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一样回应。
答案 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表格的用途。当然他们运作良好。实际上,它们比“正确”解决方案更好,但它们不正确。如果您只是需要快速修复,请继续使用它们。它实际上不会导致任何问题。