2013-10-01 104 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 />"; 
    } 
} 
?> 

這是一個簡單的例子。