我尝试用class" elementcontent"嵌入2个元素。在class" row"的元素中,有人可以告诉我代码中的错误(参见第二个代码块)吗?
这是原始代码,如果请求将2个元素嵌入一个:
<?php
$i = 1;
foreach ($items as $key=>$item) {
?>
<div class="row">
<div class="elementcontent">element content</div>
</div>
<?php
$i++;
}
?>
这是我尝试嵌入元素的代码:
<?php
$i = 1;
foreach ($items as $key=>$item) {
?>
<div class="row">
<div class="elementcontent">element content</div>
<?php
if ($i % 2 == 0) {
echo '</div><div class="row">';
}
?>
</div>
<?php
$i++;
}
?>
这种方式我在这个来源的帮助下找到了:How can I alternate div elements in php foreach loop
答案 0 :(得分:2)
要在每行中放置两个要测试$key
-
<?php
$items = array('foo', 'bar', 'glorp', 'baz');
foreach ($items as $key=>$item) {
if($key % 2 == 0){
echo '<div class="row">';
echo '<div class="elementcontent">'. $item . '</div>';
} else {
echo '<div class="elementcontent">'. $item . '</div>';
echo '</div>';
}
}
?>
通过使用密钥,不需要迭代器。
答案 1 :(得分:0)
如果我理解你,你想要的是一个ROW元素,里面有2个ELEMENTCONTENT。
你可以这样做:
<?php
$i = 0;
foreach ($items as $key => $item) {
$row = ($i % 2 == 0); ?>
<?php if ($row): ?><div class="row"><?php endif; ?>
<div class="elementcontent">element content</div>
<?php if (!$row): ?></div><?php endif; ?>
<?php
$i++;
}
if (count($items) % 2 === 1) {
echo '</div>';
}
?>
每2个项目将包含一个带有类行的div。 我使用PHP's alternative syntax来获得更优雅的代码。
由于错误而更新了答案,并检查项目数是否为奇数,以关闭div标签。