【问题标题】:how to define html tag after each 5 iteration in foreach loop如何在foreach循环中每5次迭代后定义html标签
【发布时间】:2012-04-17 01:20:27
【问题描述】:

我只想知道如何在 foreach 循环中的每 5 次迭代后定义 HTML 标记 <br clear="all"> 这是我的代码

<?php
$i=1;    
foreach($videoEntries as $data){
?>
    <div class="item-main">
        <div class="item">
        <a href="javascript:;" onclick="ratePopup(2)" title="<?php echo $data->video_name;?>">
        <div class="overlaid"></div>
        <img src="<?php echo $image_url;?>"  width="93" height="89"/>
        </a>
        </div>
        <p title="Trailer Name"><strong><?php echo $data->video_name;?></strong></p>
        <p title="Released Date"><?php echo $data->video_released_date;?></p>
    </div>
<?php 
    if($i == 5){
        echo "<br clear = 'all'>";    
    }
}
?>

结果需要或帮助肯定是appricicated

12345
<br clear="all">
678910
<br clear="all">

【问题讨论】:

    标签: php foreach logic iteration


    【解决方案1】:

    试试这个:

    <?php
    $i=0;    
    foreach($videoEntries as $data){
    $i++;
    ?>
        <div class="item-main">
            <div class="item">
            <a href="javascript:;" onclick="ratePopup(2)" title="<?php echo $data->video_name;?>">
            <div class="overlaid"></div>
            <img src="<?php echo $image_url;?>"  width="93" height="89"/>
            </a>
            </div>
            <p title="Trailer Name"><strong><?php echo $data->video_name;?></strong></p>
            <p title="Released Date"><?php echo $data->video_released_date;?></p>
        </div>
    <?php 
        if($i == 5){
            echo "<br clear = 'all'>";  
            $i=0;
        }
    }
    ?>
    

    【讨论】:

    • 感谢您与我分享您的经验
    • 每个程序员都应该学会做$i % 5,这太他妈简单实用了。执行此处建议的操作会产生将 $i 保持在 0 5 范围内的不必要的需要。那是自找麻烦。
    • @tei - ++$i==5 也是如此,这不是火箭科学……维护代码库的人应该注意这一点。
    • 也是。许多。移动。部分。无论如何,我不想强​​调我的观点。我只是在这里添加我的意见。
    【解决方案2】:

    你可以改变:

    if($i == 5){
        echo "<br clear = 'all'>";    
    }
    

    if(!($i % 5)){
        echo "<br clear = 'all'>";    
    }
    

    【讨论】:

    • 感谢您与我分享您的经验
    【解决方案3】:

    试试这个:假设你的数组索引没有设置为奇怪的东西。

    foreach ($videoEntries as $index=>$data) {
      if ($index % 5 == 0) {
        echo "<BR>";
      }
    }
    

    【讨论】:

    • 除了 5 的倍数之外,所有的都包括它。
    • @MichaelRushton 是的,在我发布我的编辑之前你抓住了我
    • @Churk 感谢与我分享您的经验
    【解决方案4】:
    foreach($videoEntries as $data){
        $i++;
        ?>
    
    <?php 
        if(($i % 5) == 0){
            echo "<br clear = 'all'>";  
        }
    }
    ?>
    

    【讨论】:

    • 感谢您与我分享您的经验
    【解决方案5】:

    只是为了完成示例...

    当您需要循环的索引时,您可以改用for 循环(假设它是一个数组)。 foreach 循环是为了方便而发明的,当您不需要索引时。

    for ($index = 0; $index < count(videoEntries); $index++)
    {
      $data = $videoEntries[$index];
      ...
      if(($index % 5) == 0)
      {
        echo "<br clear = 'all'>";    
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-09-01
      • 2016-04-09
      • 1970-01-01
      • 2016-01-24
      • 2019-02-02
      • 1970-01-01
      • 1970-01-01
      • 2016-08-02
      • 1970-01-01
      相关资源
      最近更新 更多