我使用这个PHP生成0-9的列表。
$counter = 0;
WHILE ($counter < 10)
{
print "counter is now " . $counter . "<br>";
$counter++;
}
我想改变它的工作方式。如果可能的话,每第三次迭代,我都希望将打印的文本包装在<div>
中。
所以最终我输出的代码是:
<div>
counter is now 0
counter is now 1
counter is now 2
</div>
<div>
counter is now 3
counter is now 4
counter is now 5
</div>
<div>
counter is now 6
counter is now 7
counter is now 8
</div>
<div>
counter is now 9
</div>
使用模数运算符,您可以每3次迭代分割输出,但仍需要检查可能生成空div
块的limit
值
<?php
$counter = 0;
$limit = 10;
print "<div>'n";
while ($counter < $limit) {
print "counter is now " . $counter . "<br>'n";
if (++$counter % 3 === 0 && $counter < $limit) {
print "</div>'n<div>'n";
}
}
print "</div>'n";
使用模数进行
while($counter < 10) {
if($counter % 3 == 0) {
//Do something for the third row
}
$counter++;
}
尝试使用:
$counter = 0;
$block_count = 0;
echo "<div>";
while ($counter < 10) {
if ($block_count === 3) {
echo "</div><div>";
$block_count = 0;
}
echo "counter is now " . $counter . "<br>";
$block_count++;
$counter++;
}
echo "</div>";
我不知道php,但我认为逻辑是一样的:
$counter2 =0; //count to 10
$stopIteration =10;
WHILE($counter2<$stopIteration){
print "<div>";
$counter1 =0; //count to 3
WHILE($counter1<3){
print "counter is now".$counter2."<br>";
$counter1++;
$counter2++;
}
print "</div>";
}
我发现,对于这类任务,最好的故障保护方法是将数组中的所有数据(在本例中为所有10个打印字符串)分组,而不是将数组分割成块http://php.net/manual/en/function.array-chunk.php,然后您可以使用这个新数组,因为它被划分为块,其中每个块不大于3。但是您的输出不会失败,因为只有当modal的元素总数为0时,modal才会工作,在这种情况下,10个元素会失败,因为在最后一个循环中,modal语句不起作用。
当没有用3除的总元素时,这将添加故障保护。
$counter = 0;
$arr = array();
WHILE ($counter < 10)
{
$arr[] = "counter is now " . $counter . "<br>";
$counter++;
}
$arr = array_chunk($arr, 3);
foreach ($arr as $chunk) {
//wrap each chunk into div
echo "<div>"
foreach ($chunk as $string) {
//print your string here
}
echo "</div>"
}