//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>
}
这显示了每个“持有者”类...但我想要做的是在“持有者”类周围包装一个容器,并在每个“容器”中有3个“持有者”。 例如:
<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>
我无法找到如何获取关联数组的索引,或者如何在%3 == 0时打破foreach循环。
任何建议都很棒!
-Ved
答案 0 :(得分:14)
你需要一个单独的计数器变量:
$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 -->
答案 1 :(得分:5)
而且,你有一些语法错误
foreach($info as $key => $val){
这应该是
foreach($info as $key => $val){ ?>
关闭php以启动HTML标记
答案 2 :(得分:1)
在这种情况下你会想要做这样的事情。确保变量正确。
$i = 1;
foreach($info as $key => $val){
if ($i % 3 == 0) {
?>
<div name='container'>
<?php
}
?>
<div class="holder">
<div class="name">
<?php echo $key; ?>
</div>
<div class="colour">
<?php echo $val; ?>
</div>
</div>
if ($i % 3 == 2) {
?>
</div>
<?php
}
<?php
$i++;
}
答案 3 :(得分:0)
你可以在foreach循环中增加$i
,例如:
$i = 0;
foreach ($info as $key => $val) {
if ($i % 3 == 0) {
...
} else {
...
}
$i++;
}