【问题标题】:How to add an html element at each two items with foreach or SPL?如何使用 foreach 或 SPL 在每两个项目中添加一个 html 元素?
【发布时间】:2013-02-20 16:14:10
【问题描述】:

如何在每次 两次 迭代时中断循环并添加一个 html 元素?一个简单的foreach 可以在SPL 中做到这一点吗?

<?php foreach($items as $index=>$item): ?>
     <li>$item->title</li>
     <?php if($index + 1 = 2):?>
     <div class="divider"></div>
     <?php endif;?> 
<?php endforeach;?>

html结果,

<li>title 1</li>
<li>title 2</li>
<div class="divider"></div>
<li>title 3</li>
<li>title 4</li>
<div class="divider"></div>
<li>title 5</li>
<li>title 6</li>
<div class="divider"></div>

编辑:

<li>title 1</li>
<li>title 2</li>
<li>title 3</li>
<div class="divider"></div>
<li>title 4</li>
<li>title 5</li>
<div class="divider"></div>
<li>title 6</li>

【问题讨论】:

    标签: php foreach spl


    【解决方案1】:
    <?php foreach($items as $index=>$item){ ?> 
    
    <li>$item->title</li>
    
    if ($index != 0 && $index%2 == 0){?><div class="divider"></div><?php} 
    
    }?>
    

    【讨论】:

    • 感谢您的回答。但它在我上面的编辑中产生了结果......这是什么意思$index%2
    • 我在条件中加了 1 以获得我想要的正确结果($index+1)%2 == 0
    【解决方案2】:

    对于这个结果:

    <li>title 1</li>
    <li>title 2</li>
    <div class="divider"></div>
    <li>title 3</li>
    <li>title 4</li>
    <div class="divider"></div>
    <li>title 5</li>
    <li>title 6</li>
    <div class="divider"></div>
    

    使用模数 2 执行此操作:

    <?php 
    foreach($items as $index=>$item) {
      if ($îndex % 2 = 0) {
    ?>
    <?php // <!-- ADD HTML HERE !> ?>
    <li>$item->title</li>
    <?php
      } else {
    ?>
    <li>$item->title</li>
    <?php
      }
    }
    ?>
    

    对于这个结果:

    <li>title 1</li>
    <li>title 2</li>
    <li>title 3</li>
    <div class="divider"></div>
    <li>title 4</li>
    <li>title 5</li>
    <div class="divider"></div>
    <li>title 6</li>
    

    跳过第一个索引和模数 2:

    <?php 
    foreach($items as $index=>$item) {
      if ($îndex != 0 && $îndex % 2 = 0) {
    ?>
    <?php // <!-- ADD HTML HERE !> ?>
    <li>$item->title</li>
    <?php
      } else {
    ?>
    <li>$item->title</li>
    <?php
      }
    }
    ?>
    

    【讨论】:

    • 感谢 Manu 的回答。但它在我上面的编辑中产生了结果......请问 - $index%2 是什么意思?
    • 我在条件中加了 1 以获得我想要的正确结果 ($index+1)%2 == 0
    • php.net/manual/en/language.operators.arithmetic.php$index 不需要加 1。您需要获取有关模数运算符% 的信息。你认识这个运营商吗?我无法在这里解释更多,它可能太长而且在这个论坛中不合适。
    • $index01 开始?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    • 2017-11-21
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    相关资源
    最近更新 更多