在 foreach 循环 PHP 中,每隔三个项目环绕一个 div [英] Wrapping a div around every third item in a foreach loop PHP

查看:39
本文介绍了在 foreach 循环 PHP 中,每隔三个项目环绕一个 div的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

//设置数组$info = 数组('安迪' =>'蓝色','安德鲁' =>'黑色的','标记' =>'绿色','简' =>'橘子','西蒙' =>'红色的','琼' =>'粉色的','起诉' =>'黄色','艾伦' =>'黑色的')$i = 1;foreach($info as $key => $val){<div class="holder"><div class="name"><?php echo $Name ?>

<div class="颜色"><?php echo $colour ?>

}

这显示了每个持有人"类......但我想要做的是在持有人"类周围包裹一个容器,并在每个容器"中拥有 3 个持有人".例如:

<div class="holder"><div class="name"><?php echo $Name ?>

<div class="颜色"><?php echo $colour ?>

<div class="holder"><div class="name"><?php echo $Name ?>

<div class="颜色"><?php echo $colour ?>

<div class="holder"><div class="name"><?php echo $Name ?>

<div class="颜色"><?php echo $colour ?>

我不知道如何获取关联数组的索引,或者如何在 %3 == 0 时中断 foreach 循环.

任何建议都会很棒!

-Ved

解决方案

你需要有一个单独的计数器变量:

$i = 0;foreach($info as $key => $val){如果($i%3 == 0){回声 $i >0 ?</div>":"";//如果不是第一个则关闭 divecho "

";}?><div class="holder"><div class="name"><?php echo $Name ?>

<div class="颜色"><?php echo $colour ?>

<?php$i++;}?>

<!-- 关闭最后一个容器 div -->

//set the array
$info = array(
'andy' => 'blue',
'andrew' => 'black',
'mark' => 'green',
'jane' => 'orange',
'simon' => 'red',
'joan' => 'pink',
'sue' => 'yellow',
'alan' => 'black') 


$i = 1;

foreach($info as $key => $val){

    <div class="holder">
        <div class="name">
            <?php echo $Name ?> 
        </div>
        <div class="colour">
            <?php echo $colour ?> 
        </div>
    </div>
} 

This dispalys each "holder" class... but what I am wanting to do is wrap a container around the "holder" class and have 3 "holder" in each "container". eg:

<div class="container">
    <div class="holder">
            <div class="name">
                <?php echo $Name ?> 
            </div>
            <div class="colour">
                <?php echo $colour ?> 
            </div>
        </div>
    <div class="holder">
            <div class="name">
                <?php echo $Name ?> 
            </div>
            <div class="colour">
                <?php echo $colour ?> 
            </div>
        </div>
    <div class="holder">
            <div class="name">
                <?php echo $Name ?> 
            </div>
            <div class="colour">
                <?php echo $colour ?> 
            </div>
        </div>
</div>

I cant find out how to either get the index of the associative array, or how to break a foreach loop once %3 == 0.

Any suggestions would be awesome!

-Ved

解决方案

You need to have a separate counter variable:

$i = 0;
foreach($info as $key => $val){
  if($i%3 == 0) {
    echo $i > 0 ? "</div>" : ""; // close div if it's not the first
    echo "<div class='container'>";
  }
  ?>
    <div class="holder">
        <div class="name">
            <?php echo $Name ?> 
        </div>
        <div class="colour">
            <?php echo $colour ?> 
        </div>
    </div>
<?php
$i++;
}
?>
</div> <!-- close last container div -->

这篇关于在 foreach 循环 PHP 中,每隔三个项目环绕一个 div的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
PHP最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆