我将如何实现此PHP任务?
我有一个无序的html列表和数组。 我的代码为数组中的每个项添加了列表标记,以创建一个大的无序列表
<ul>
<?php foreach ($rows as $id => $row): ?>
<li><?php print $row ?></li>
<?php endforeach; ?>
</ul>
当前输出
<ul>
<li>01</li>
<li>02</li>
<li>.....</li>
<li>.....</li>
<li>15</li>
</ul>
我想要的是拆分列表项,使它们以4个为一组作为子无序列表。例如,如果数字不能被4整除,则余数应该是最后的较小列表。
<ul>
<ul>
<li>01</li>
<li>02</li>
<li>.....</li>
<li>.....</li>
</ul>
<ul>
<li>05</li>
<li>06</li>
<li>.....</li>
<li>.....</li>
</ul>
<ul>
<li>09</li>
<li>10</li>
</ul>
</ul>
提前致谢。
答案 0 :(得分:5)
<ul>
<?php foreach ($rows as $id => $row): ?>
<?php if ($id > 0 && $id % 4 === 0): ?>
</ul><ul>
<?php endif ;?>
<li><?php echo $row; ?></li>
<?php endforeach; ?>
</ul>
(请注意,如果$rows
数组的键不仅仅是索引号,则需要维护自己的计数器变量。)
答案 1 :(得分:0)
<?php
$id=0;
foreach ($rows as $id => $row)
{
$id+=1;
if ($id % 4 == 0)
{
echo "<ul>";
}
echo "<li>$i</li>";
if ($id % 4 == 0)
{
echo "</ul>";
}
}
if ($id % 4 != 0)
{
echo "</ul>";
}
?>
答案 2 :(得分:0)
foreach ($rows as $id => $row) {
if ($id % 4 == 0) {
// do something
}
}
答案 3 :(得分:0)
尝试这样的事情:
<?php
$rows = array("2","3","5","6","8","9","0","3","5");
$i =0;
foreach ($rows as $id => $row):
if($i % 4 == 0)
{ echo "</ul><ul>";}
$i++;
?>
<li><?php print $row ?></li>
<?php endforeach; ?>
</ul>
答案 4 :(得分:0)
最后这是我的解决方案。如果有多个项目不能被4整除,则此解决方案包括关闭标记的语句,例如,如果总共有五个项目。感谢大家,没有你的意见,我无法做到。
$count;
foreach ($rows as $id => $row)
{
if ($count % 4 == 0)
{
echo "<ul>";
}
echo '<li>' . $row . '</li>';
if ($count % 4 == 3 || $count == count($rows)-1)
{
echo "</ul>";
}
$count++;
}