2016-11-30 156 views
2

我從Exact中檢索我的項目,並顯示它們使用PHP循環。但是,我想在每3個項目之後放置一個HTML標記(br)。PHP - 每行限制3個項目的Foreach循環

有沒有可能做到這一點?我目前的代碼:

<?php 
    $glas = getGLAccounts($search); 
    $count = 0 

    foreach($glas as $gla) { 
     $count++; 
     echo "<tr><td><a href='glaccountedit.php?glaccount=".$gla['ID']."'>".$gla['Code']." </a></td><td>&nbsp;&nbsp;&nbsp;".$gla['Description']."</td></tr>"; 

     if ($count == 3) { 
      echo "</br>"; 
     } 
    } 
?> 

但是,這是行不通的。我究竟做錯了什麼?

+1

http://stackoverflow.com/questions/9992396/how-to- define-html-tag-after-each-5-iteration-in-foreach-loop – AddcitedToLearn

+1

'if($ count%3 == 0)'使用模運算符。 – nicovank

+0

您需要重置計數器以重新開始 – RST

回答

0

它不起作用,因爲您的計數沒有重置。如果count == 3,它會做<br>但在此之後,計數再次增加。所以count將是4,5,6,7,等,並永遠不會再爲truecount == 3

<?php 
$glas = getGLAccounts($search); 
$count = 0 

foreach($glas as $gla) { 
    $count++; 
    echo "<tr><td><a href='glaccountedit.php?glaccount=".$gla['ID']."'>".$gla['Code']." </a></td><td>&nbsp;&nbsp;&nbsp;".$gla['Description']."</td></tr>"; 
    if ($count == 3) { 
     $count = 0; 
     echo "</br>"; 
    } 
} 
?> 
3

您的代碼就會把<br>只有一次。 如果你需要,你需要重新設置變量各三個項目後放:

if ($count == 3) { 
    $count = 0; 
    echo "</br>"; 
} 

或變化情況:

if ($count%3 === 0) { 
    echo "</br>"; 
}