【问题标题】:How to add <tr></tr> after every fourth loop term of <td></td>如何在 <td></td> 的每四个循环项之后添加 <tr></tr>
【发布时间】:2015-12-24 01:01:27
【问题描述】:

我想在循环中每第四个数字项后退出循环。

我想创建一个包含 20 个人的列表;每个tr 应该是 4 人。

所以,我想在每 4th 次循环后退出循环。我的 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>";}


} ?>

【问题讨论】:

  • 你的 $i 是从 0 开始的,所以,$i%3 应该工作..
  • @NiranjanNRaju 它真的不应该,这会给每 3 个,正确的用法是 ($i+1)%4
  • 正确的用法是从 0 或 1 到 19 或 20 来决定
  • 嗯,是的,在他的循环中有 21 个元素是错误的,但可以说是一个错字并且与他的问题无关,但建议他应该使用模 3 而不是 4,当他希望它按 4 分组时完全错误。

标签: javascript php jquery html for-loop


【解决方案1】:

您可以添加虚拟变量 $temp,然后每次增加值,如果您离开,它将再次从 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>'; }
    ?>

【讨论】:

  • 只是尝试这个没有解释的答案导致复制粘贴代码,任何人都没有进一步的理解
  • @toni 对不起,我发布了一个基本的 php,所以我认为不需要解释,好吧,现在我将添加我的解释
  • 对于有经验的人来说,基础知识可能会让学习者非常困惑,所以我至少要强调一下变化
【解决方案2】:
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>";}

} ?>     

【讨论】:

  • 这是一个懒惰的答案,至少正确格式化代码,更好地解释为什么答案有效,以便 OP 学到一些东西,所以应该主要是教人们,而不是提供复制粘贴代码
  • @ToniLeigh 你能不能再次查看我的答案......它不是复制粘贴......如果你能给出更好的答案那么这个......那么你应该在这里评论和降级。 ....
  • 它是复制粘贴,因为它只是一段代码,在某处有解决方案,也就是说,有人可能只是复制和粘贴而不是通过它来寻找他们难以找到的解决方案通知
  • @ToniLeigh 不,它不是复制粘贴……它来自我的编辑器……而不是其他地方……
  • 我不是这个意思,我的意思是答案只是为提问者提供了一些可以复制和粘贴的东西,它没有让他们理解或指出更正
【解决方案3】:

只是想把我的脖子伸出来并展示另一种方法。 通常你有一组用户。 这将创建一个包含 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>';

【讨论】:

    【解决方案4】:
    <?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 } ?>
    

    【讨论】:

    • 你的循环不应该从 4 开始吗?
    【解决方案5】:

    if($i%4==0){ echo "&lt;tr&gt;&lt;/tr&gt;";} 更改为if(($i+1)%4==0){ echo "&lt;/tr&gt;&lt;tr&gt;";}

    【讨论】:

    • ...正确我在我的答案中使用了您的检查..您可以检查
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    • 2015-02-11
    • 2018-11-23
    • 2014-04-09
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多