1

我有一个 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、6、9、12、15 等)。

我想我正在寻找基于另一个循环条件的增量(每次达到相等时)。有什么想法吗?rwhite35

4

2 回答 2

3
if ($i == $e){
   echo '<tr>';
   $e = $e + 3;
 }

或者,使用模数,例如

if ($i % 3 == 0)
于 2012-07-12T19:41:38.877 回答
0

您想在 $i == $e 时更新 $e。该条件已在您的 if 语句中使用。只需添加

$e += 3;

你就完成了。

if ($i == $e){
   echo '<tr>';
   $e += 3;
 }
于 2012-07-12T19:42:42.127 回答