0

我想创建一个 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>
4

4 回答 4

0

您需要在循环中添加一个变量以用作计数器。有一段代码会在每次迭代中增加它的数量。然后您可以添加一个 if 语句来检测某些数字(在这种情况下可被四整除)并触发这些列表标签以正确的间隔输出。下面是一个计数器的例子:

$i = 0; // Counting variable

foreach ($names as $name) {

  $i++; // Add one to counting variable  

}

永远记得在开始时将您的计数变量设置为零,否则它可能不想增加(因为您不能将一加到无)。此外,如果您在一个页面上的多个计数器中使用相同的变量名称,则无论如何都需要重置它们,否则该数字将在错误的上下文中重复使用。

于 2013-10-19T02:22:24.020 回答
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>';
}
于 2013-10-19T02:22:51.583 回答
0

您可以使用模数

foreach($names as $key => $name) {
 if ($key % 4 == 0) echo "<ul>"; 
 echo "<li>" . $name . "</li>";
 if ($key % 4 == 0) echo "</ul>";
}
于 2013-10-19T02:24:46.800 回答
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>';
    }
}
于 2013-10-19T02:26:21.870 回答