我在li
中有元素,它们是使用for循环生成的
但我想把他们分成3人一组
比如,但我无法使用for loop实现这一点,所以我使用了手动开关的情况,例如,对于介于1和3之间的情况应用row1,而对于介于4和6之间的情况则应用类row2,但是如果有很多产品它会增加li
,我需要为每个组编写切换用例,所以有什么方法可以为循环或切换用例编写动态?
<li class="row1"></li>
<li class="row1"></li>
<li class="row1"></li>
<li class="row2"></li>
<li class="row2"></li>
<li class="row2"></li>
<li class="row3"></li>
<li class="row3"></li>
<li class="row3"></li>
您可以这样工作。
<?php for( $i=1; $i<=length of your product;i++)
{
$k=0;
while($k<=3)
{ ?>
<Li class="row<?php echo $i;?>"></li>
<?php $k++;
}
} ?>
您可以使用2个for循环来完成此操作,例如:
for ($row_id = 1; $row_id <= 3; $row_id++) { // row ids
for ($i = 1; $i <= 3; $i++) { // number of list elements you want with each row id
echo '<li class="row' . $row_id . '"></li>';
}
}
或者如果你真的想把它们分成三个单独的列表:
for ($row_id = 1; $row_id <= 3; $row_id++) { // row ids
echo '<ul>';
for ($i = 1; $i <= 3; $i++) { // number of list elements you want with each row id
echo '<li class="row' . $row_id . '"></li>';
}
echo '</ul>';
}
从你的问题的措辞中不能100%确定你想要的是什么。
M不是交换机的铁杆粉丝,我更喜欢MOD功能来实现它,如下所示
echo "<ul>";
<?php
$obj = 0;
while(//condition)
{
echo "<Li class=row.'$obj'></li>";
if(++$obj % 3 == 0)
{
echo"</ul><ul>"; //create new ul list
}
}
?>
</ul>
这样尝试:
<?php
$k = 0;
for ($i=1; $i < 12; $i++) {
if($i%3==0){ $k++; echo " $k multiple times <br/>"; }
}
?>
试试这个
<?php
$k = array('a','b','d','f','bh','r','rr','rrr','eee','www','wwwww','qww','qwq','wqq','wq','qwq','wqw','wqeqwe','aew','qq','wqq','wqwq');
?>
<ul>
<?php
$s=1;
for($i=0;$i<count($k)-1;$i++)
{
if($i % 3==0){
$s++;
}
?>
<li class="<? echo "row".$s?>"><?=$k[$i]?></li>
<?php
}
?>
</ul>
在页面源中,请参阅类似的输出
<ul>
<li class="row2">a</li>
<li class="row2">b</li>
<li class="row2">d</li>
<li class="row3">f</li>
<li class="row3">bh</li>
<li class="row3">r</li>
<li class="row4">rr</li>
<li class="row4">rrr</li>
<li class="row4">eee</li>
<li class="row5">www</li>
<li class="row5">wwwww</li>
<li class="row5">qww</li>
<li class="row6">qwq</li>
<li class="row6">wqq</li>
<li class="row6">wq</li>
<li class="row7">qwq</li>
<li class="row7">wqw</li>
<li class="row7">wqeqwe</li>
<li class="row8">aew</li>
<li class="row8">qq</li>
<li class="row8">wqq</li>
</ul>