2015-09-26 53 views
3

我想在循環中的每第四個數字項之後打破循環。如何添加<tr></tr>在每第四個循環項之後​​</td>

我想創建一個20人的列表;在每tr應該是4人。

所以,我想從循環中每隔4 th循環數中斷。我的一個tr將包含4 td和每個td值相對於第一個td循環將增加1秒將2和最後將4,然後它應該與新tr中斷和值在td像我說的在增量訂單。

我的代碼如下:

<?php for ($i = 0 ; $i<=20; $i++){?> 
    <tr> 

     <td> 
      <img src="http://bootdey.com/img/Content/user_1.jpg" alt=""> 
      <a href="<?php echo $i ; // shoud to be 1 ?>" class="user-link">Full name 1</a> 
      <span class="user-subhead">Member</span> 
     </td> 
      <td> 
      <img src="http://bootdey.com/img/Content/user_1.jpg" alt=""> 
      <a href="<?php echo $i ; // shoud to be 2 ?>" class="user-link">Full name 1</a> 
      <span class="user-subhead">Member</span> 
     </td> 

     <td> 
      <img src="http://bootdey.com/img/Content/user_1.jpg" alt=""> 
      <a href="<?php echo $i ; // shoud to be 3 ?>" class="user-link">Full name 1</a> 
      <span class="user-subhead">Member</span> 
     </td> 

     <td> 
      <img src="http://bootdey.com/img/Content/user_1.jpg" alt=""> 
      <a href="<?php echo $i ; // shoud to be 4 ?>" class="user-link">Full name 1</a> 
      <span class="user-subhead">Member</span> 
     </td> 

     </tr> 

<?php 
if($i%4==0){ echo "<tr></tr>";} 


} ?> 
+3

你的$ i從0開始的,所以,$ I%3 shuold工作.. –

+0

@NiranjanNRaju真的不應該,這將使每3,正確的使用方法是($ I + 1)% 4 – DrunkWolf

+0

正確使用將決定從0或1到19或20 – M0rtiis

回答

1

只想堅持我的脖子出來,並顯示替代方案。 通常你有一個用戶數組。 這將創建一個帶有4列的表格,如果您有22個用戶,則只有20個用戶會在此示例中顯示,因爲它會限制輸出以填充每行。

$td = array(); 
$userlist = array('Bob', 'John', 'Robert', 'Eric', 'Lydia', 'Fanny', 'Alex', 'Leopold', 'Tom', 'Mark', 'Bob2', 'John2', 'Robert2', 'Eric2', 'Lydia2', 'Fanny2', 'Alex2', 'Leopold2', 'Tom2', 'Mark2'); 

foreach($userlist as $i => $user) { 

    if ($i != 0 && $i%4 == 0) { 
     $td[] = '<td> ' . implode('</td><td>', $tdata) . '</td>'; 
     $tdata = array(); 
    } 

    $tdata[] = '<img src="http://bootdey.com/img/Content/user_1.jpg" alt=""> 
       <a href="' . $i . '" class="user-link">Full name ' . $user . '</a> 
       <span class="user-subhead">Member</span>'; 

} 

echo '<table><tr>' . implode('</tr><tr>', $td) . '</tr></table>'; 
-1
<?php for ($i = 5 ; $i<=20; $i+=4){ ?> 
       <tr> 

        <td> 
         <img src="http://bootdey.com/img/Content/user_1.jpg" alt=""> 
         <a href="<?php echo $i - 4 ; // shoud to be 1 ?>" class="user-link">Full name 1</a> 
         <span class="user-subhead">Member</span> 
        </td> 
        <td> 
         <img src="http://bootdey.com/img/Content/user_1.jpg" alt=""> 
         <a href="<?php echo $i - 3; // shoud to be 2 ?>" class="user-link">Full name 1</a> 
         <span class="user-subhead">Member</span> 
        </td> 

        <td> 
         <img src="http://bootdey.com/img/Content/user_1.jpg" alt=""> 
         <a href="<?php echo $i - 2; // shoud to be 3 ?>" class="user-link">Full name 1</a> 
         <span class="user-subhead">Member</span> 
        </td> 

        <td> 
         <img src="http://bootdey.com/img/Content/user_1.jpg" alt=""> 
         <a href="<?php echo $i - 1; // shoud to be 4 ?>" class="user-link">Full name 1</a> 
         <span class="user-subhead">Member</span> 
        </td> 

       </tr> 

<?php } ?> 
+0

你的循環不應該從4開始? –

+0

你是對的。 thx – M0rtiis

-1

變化if($i%4==0){ echo "<tr></tr>";}if(($i+1)%4==0){ echo "</tr><tr>";}

+0

...正確我用你的支票在我的答案..你可以檢查 –

-1
assume $rows = 20; 

<?php for ($i = 0 ; $i<=$rows; $i++){?> 
    <tr> 
     <?php if ($i<$rows){ 

     ?> 
     <td> 
      <img src="http://bootdey.com/img/Content/user_1.jpg" alt=""> 
      <a href="<?php echo $i ; // shoud to be 1 ?>" class="user-link"><?php echo $rows[$i]['nickname']?></a> 
      <span class="user-subhead">Member</span> 
     </td> 
     <?php } ?> 
      <?php $i = $i+1; 

      if ($i<$rows){ ?> 
     <td> 
      <img src="http://bootdey.com/img/Content/user_1.jpg" alt=""> 
      <a href="<?php echo $i ; // shoud to be 1 ?>" class="user-link"><?php echo $rows[$i]['nickname']?></a> 
      <span class="user-subhead">Member</span> 
     </td> 
     <?php } ?> 
      <?php 
      $i = $i+1; 

      if ($i<$rows){ ?> 
     <td> 
      <img src="http://bootdey.com/img/Content/user_1.jpg" alt=""> 
      <a href="<?php echo $i ; // shoud to be 1 ?>" class="user-link"><?php echo $rows[$i]['nickname']?></a> 
      <span class="user-subhead">Member</span> 
     </td> 
     <?php } ?> 
      <?php 
      $i = $i+1; 
      if ($i<$rows){ ?> 
     <td> 
      <img src="http://bootdey.com/img/Content/user_1.jpg" alt=""> 
      <a href="<?php echo $i ; // shoud to be 1 ?>" class="user-link"><?php echo $rows[$i]['nickname']?></a> 
      <span class="user-subhead">Member</span> 
     </td> 
     <?php } ?> 

    </tr> 

<?php 
if(($i+1)%4==0){ echo "</tr><tr>";} 

} ?>  
+0

這是一個懶惰的答案,至少格式化的代碼,更好地解釋爲什麼答案的作品,所以OP學到了東西,SO應該主要是關於教民,不提供複製粘貼代碼 –

+0

@ToniLeigh可以再次審查我的答案....它不是複製粘貼.....如果你能給出更好的答案,那麼這...那麼你應該評論和降級在這裏..... –

+0

它的複製粘貼,因爲它只是一個代碼塊,在某個地方,也就是說,有人可能會複製粘貼而不是通過挑選它來找到他們很難注意到的解決方案 –

0

您可以加入虛擬變量$溫度,然後每次遞增值,如果你提出它將再次從1開始。

這是最簡單的方法!

<?php 
    $temp =1; 
    for ($i = 1 ; $i<=23; $i++){ if($temp == 1){ echo "<tr>"; } ?> 
     <td> 
      <img src="http://bootdey.com/img/Content/user_1.jpg" alt=""> 
      <a href="<?php echo $i ; // shoud to be 1 ?>" class="user-link">Full name <?php echo $i ; ?></a> 
      <span class="user-subhead">Member</span> 
     </td> 
    <?php 
    if($temp == 4){ echo "</tr>"; $temp = 0; } 
     $temp++; 
    } 
    if($temp-1 != 0){ echo '</tr>'; } 
    ?> 
+0

只是嘗試這個答案,沒有解釋結果複製粘貼代碼沒有進一步的理解任何人 –

+0

@ toni抱歉,我發佈了一個基本的PHP,所以我認爲不需要解釋,好的,現在我會加我的解釋 – Sathish

+0

對於有經驗的人來說基本的東西可能會讓有些人學習時感到困惑,所以我至少應該強調這種改變 –

相關問題