我想创建一个PHP循环,以便它应该读取一个名称数组并以特定模式打印它,以便在每4条记录上,它应该关闭并重新打开新的UL元素。所以一般情况下应该如下:
$names = array('Name 1', 'Name 2', 'Name 3', 'Name 4', 'Name 5', 'Name 6', 'Name 7', 'Name 8', 'Name 9');
这是我拥有的数组,我想创建一个循环,所以它应该像这样打印
<ul>
<li>Name 1</li>
<li>Name 2</li>
<li>Name 3</li>
<li>Name 4</li>
</ul>
<ul>
<li>Name 5</li>
<li>Name 6</li>
<li>Name 7</li>
<li>Name 8</li>
</ul>
<ul>
<li>Name 9</li>
</ul>
答案 0 :(得分:0)
您需要在循环中添加一个变量以用作计数器。有一段代码可以在每次迭代时增加它的数量。然后你可以添加一个if语句来检测某些数字(在这种情况下可以被4整除)并触发那些列表标签以正确的间隔输出。这是一个计数器的例子:
$i = 0; // Counting variable
foreach ($names as $name) {
$i++; // Add one to counting variable
}
始终记得在开始时将计数变量设置为零,否则它可能不想增加(因为你不能将其添加到任何东西)。此外,如果您在页面上的多个计数器中使用相同的变量名称,则无论如何都需要重置它们,否则该数字将在错误的上下文中重复使用。
答案 1 :(得分:0)
$count = 0;
foreach ($names as $key => $value) {
if ($count%4 == 0) {
print '<ul>';
}
print "<li>$value</li>";
if ($count%4 == 3) {
print '</ul>';
}
$count++;
}
if (count($names)%4 != 0) {
print '</ul>';
}
答案 2 :(得分:0)
您可以使用模数
foreach($names as $key => $name) {
if ($key % 4 == 0) echo "<ul>";
echo "<li>" . $name . "</li>";
if ($key % 4 == 0) echo "</ul>";
}
答案 3 :(得分:0)
使用模数运算符:
$names = array('Name 1', 'Name 2', 'Name 3', 'Name 4', 'Name 5', 'Name 6', 'Name 7', 'Name 8', 'Name 9');
$counter = 0;
foreach($names as $name){
$counter++;
if($counter % 4 == 1){
echo '<ul>';
}
echo '<li>'.$name.'</li>';
if($counter % 4 == 0){
echo '</ul>';
}
}