2012-07-12 34 views
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循環3次)等於$ E,該過程增加了預期。每次滿足條件後,我都需要$ e增加3。

圖像數量未定義。如果目錄中有21張圖像,$ i將增加21次,$ e應該增加7次,每次增加3次(3,6,9,12,15等)。

我想我正在尋找一個基於另一個循環條件的增量(每次達到相等時)。有什麼想法嗎? rwhite35

+0

只需在'if($ i == $ e)'語句控制的塊中添加'$ e + = 3'即可。 – andrewsi 2012-07-12 19:40:20

+0

你有沒有聽說過** modulo **運算符?這是你在找什麼。 – aefxx 2012-07-12 19:40:41

回答

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

另外,使用模,像

if ($i % 3 == 0) 
+0

+1這是正確的語法和正確的做法! – aefxx 2012-07-12 19:42:16

+0

完美!那就是訣竅。感謝您的快速回復,我可以繼續前進。 – rwhite35 2012-07-12 20:00:13

0

要更新$ e出現$ I == $即該條件已被用於您的if語句中。只需加上

$e += 3; 

你就完成了。

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

感謝您的回覆。你知道當你如此接近某件事情時,即使事後很明顯,你也看不到答案......謝謝你, – rwhite35 2012-07-12 20:03:12

相關問題