2016-11-30 154 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>"; 
}