我有一个PHP函数,其中目录中的未定义数量的图像正在输出到浏览器。正在将图像读入对象。我遇到的问题是如何呈现图像。我想把它们放在一个表中,连续四个<td>
个单元格。这是代码:
function displayThumbList(){
$tlist = $this->getThumbList();
$i = 0;
$e = 3;
echo '<table width="400px" border=1><tr>';
foreach ($tlist as $value) {
echo "<td width=\"90px\" height=\"50px\"><a href=\"showImage.php?id=".$this->getBaseName($value,$this->thumbPrefix)."\" target=\"imgHolder\"><img class=\"timg\" src=\"thumbnail/".$value."\" alt=\"a\" /></a></td>";
$_GET['imagefocus'] = $this->getBaseName($value,$this->thumbPrefix);
//here is where the condition for adding a <tr> tag is evaluated
if ($i == $e){
echo '<tr>';
}
$i++; //increments by 1 with each foreach loop
}
echo '</table>';
}
第一次$ i(第三次通过foreach循环)等于$ e,该过程按预期添加。每当条件满足时,我需要$ e增加3。
图像数量未定义。如果目录中有21个图像,$ i将增加21次,$ e应增加7次,每增加3个增加3个(3,6,9,12,15等)。
我想我正在寻找基于另一个循环条件的增量(每次达到相等)。有什么想法吗? rwhite35
答案 0 :(得分:3)
if ($i == $e){
echo '<tr>';
$e = $e + 3;
}
或者,使用modulo,类似
if ($i % 3 == 0)
答案 1 :(得分:0)
你想在$ i == $ e时更新$ e。这个条件已经在你的if语句中使用了。只需添加
$e += 3;
你已经完成了。
if ($i == $e){
echo '<tr>';
$e += 3;
}