带嵌套的PHP嵌套循环

时间:2013-10-01 09:47:17

标签: php loops

我可以看到一些这样做的方法,请耐心等待我,因为我不熟悉PHP。

我有一个要打印到标签上的项目列表,标签页有8个可打印的标签,所以我需要一个循环来收集所有项目并在8个标签后添加分页符:

foreach ($items as $item) {
    $i = 1;
    while ($i <= 8) {            
        Repeat this for 8 labels                   
    }
}

现在经过8个项目后,我需要添加分页符

所以我打算在里面加一个带有计数的嵌套循环并增加,但我不知道这是不是最好的方式?

我基本上都在问什么是解决这个问题的最佳方法,因为可能有数千个项目,所以希望它尽可能高效。

提前致谢。

4 个答案:

答案 0 :(得分:0)

为什么不使用for循环和模数?

<?php
    $everyNth = 32;
    for ($i = 0; $i < 1234; $i++) {
        if ($i > 0 && !($i % $everyNth)) {
            echo $i . PHP_EOL;
        }
    }
?>

打印:

32
64
96
128
160
192
224
256
288
320
352
384
416
448
480
512
544
576
608
640
672
704
736
768
800
832
864
896
928
960
992
1024
1056
1088
1120
1152
1184
1216

DEMO

答案 1 :(得分:0)

这样的事情应该有效:

$items = array(1,2,3,4,5,6,7,8,9,10);

$i = 1;
foreach ($items as $item) {
    echo $item." ";
    if ($i === 8) {
        echo "<br />";
        $i = 0;
    }
    $i++;
}

答案 2 :(得分:0)

尝试以下代码:

$j = 0;
foreach ($items as $item) {
    $j++;
    if($j%8 == 0) {
        echo "Repeat label for 8 record<br />";
    }
}

答案 3 :(得分:0)

<?php
$j = 0;
for($i=0;$i<40;$i++) {
    $j++;
    if($j%8 == 0) {
        echo "Repeat label for 8 record<br />";
    }
}
?>

这是一个简单的例子。