2013-10-01 67 views
-1

我可以看到一些这样做的方法,请耐心等待我,因为我是PHP新手。PHP嵌套循环与计数

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

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

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

所以我打算把一个嵌套的循环与计数内和增量,但我不知道这是否是最好的方式?

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

在此先感谢。

+0

在循环结束内添加$ i ++ –

+0

谢谢,对不起,错过了。 – Paul

+0

没有问题,你可以为此投票 –

回答

0

试试下面的代码:

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

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

这是一个简单的例子。