我在数据库中有8个或更多产品:
<?php if (!empty($this->products)){
echo "<ul>";
foreach ($this->products as $product){
?>
8 items inserted here
<?
}
echo "</ul>";
}
php?>
所以我想要的是数据库中的8个或更多产品将被放置如下:
<ul>
<li>
<div>Product here</div>
<div>Product here</div>
<div>Product here</div>
<div>Product here</div>
</li>
<li>
<div>Product here</div>
<div>Product here</div>
<div>Product here</div>
<div>Product here</div>
</li>
</ul>
每个<li>
中有4个产品。我该怎么做并知道这是来自foreach循环?
答案 0 :(得分:2)
您可以使用the modulus operator in PHP跟踪每四种产品的打印/插入结束/打开li
标记:
<?php
if (!empty($this->products)){
echo "<ul>";
$i = 1;
foreach ($this->products as $product){
if ($i % 4 == 1) echo "<li>";
echo "<div>".$product."</div>";
if ($i % 4 == 0) echo "</li>";
$i++;
}
echo "</ul>";
}
?>
例如,如果i
最初为1
,我们会在li
内放置一个开头div
标记和产品。然后我们增加i
。当i
达到值4
(或4的任意其他倍数)时,我们要关闭li
标记。在此之后,i
将变为5
和5 % 4 = 1
,因此我们将再次打开另一个li
代码。
答案 1 :(得分:0)
<?php if (!empty($this->products)){
echo "<ul>";
$counter = 1;
foreach ($this->products as $product){
if($counter == 1) echo '<li>';
echo $product;
if($counter==4) {$counter=0; echo '</li>';}
$counter++;
}
echo "</ul>";
}
?>