如何在foreach循环中每5次迭代后定义html标签

Posted

技术标签:

【中文标题】如何在foreach循环中每5次迭代后定义html标签【英文标题】:how to define html tag after each 5 iteration in foreach loop 【发布时间】: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;?>"   />
        </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">

【问题讨论】:

【参考方案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;?>"   />
        </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'>";    
  

【讨论】:

以上是关于如何在foreach循环中每5次迭代后定义html标签的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis 中 foreach 用法

MyBatis的foreach语句详解

转到 JavaScript forEach 循环中的“下一个”迭代 [重复]

在 foreach 循环中每次迭代后 PHP 回显

执行异步forEach循环后重新定义全局变量[重复]

使用setTimeout跳转到(Typescript).forEach循环中的下一次迭代