【发布时间】:2016-07-01 17:10:22
【问题描述】:
我需要为一个项目(一行)将每 2 个 div 与另一个 div 包装起来,所以它看起来像:
<div class="row">
<div> Item </div>
<div> Item </div>
</div>
<div class="row">
<div> Item </div>
<div> Item </div>
</div>
我尝试了一些解决方案,但它们不起作用,因为进来的物品是奇数(9 件物品)。这是我所拥有的:
<?php
$count = 0;
foreach ($contents as $content)
{
//var_dump($content);
$books = $content["tags"];
$book_image = $content['content_image'];
$book_desc = $content['content_social_description'];
++$count;
if($count == 1)
{
echo "<div class='et_pb_row'>";
}
foreach ($books as $book)
{
$book_name = $book['tag_name'];
$book_name_trim = str_replace(' ', '-', $book_name);
?>
<!-- Inside the Book Loop -->
<div class='et_pb_column et_pb_column_1_2 books' style="background: url('https://s3-us-west-2.amazonaws.com/crowdhubproverbs31/<?php echo $book_image ;?>');">
<h2><?php echo $book_name; ?></h2>
<p><?php echo $book_desc; ?></p>
<?php echo $count; ?>
</div>
<?php
}
if ($count == 2)
{
echo "</div>";
$count = 0;
}
}
?>
这有效,除了倒数第二行有 3 个项目,即使当我回显它时它显示“计数”为 2,所以它应该重置但不会。所以它:
<div class="row">
<div> Item </div> "Count 1"
<div> Item </div> "Count 2"
</div>
<div class="row">
<div> Item </div> "Count 1"
<div> Item </div> "Count 2"
</div>
<div class="row">
<div> Item </div> "Count 1"
<div> Item </div> "Count 2"
<div> Item </div> "Count 2"
</div>
<div class="row">
<div> Item </div> "Count 1"
<div> Item </div> "Count 2"
</div>
【问题讨论】:
-
您确定您有 3 件商品吗?在我看来,您的最后一项没有结束 div。由于它只有一个开头的 div,也许它看起来很奇怪。
-
您正在主循环中操作 $count 变量,这意味着每 2 个 $content 项目将创建一个新行。如果 $content 中有 N $books,那么它将打印 N 次相同的 $count 值,并且不会创建新行。您是否有两本书的内容要打印 2 次?
-
它工作正常,但第三行。所有行都正确关闭。前 2 行有 2 项,第 3 行有 3 项,第 4 行有 2 项。
-
为什么不发布代码的实际输出而不是示例?比较代码和输出会容易得多..