2016-03-02 117 views
2

我有一些循環。我怎樣才能優化這個代碼,它將從第二項開始執行每個12項。我爲每個+12項目使用硬編碼的代碼,但當然這不是一個好的解決方案:)我知道這很容易做,我試圖用模運算符來完成,但它在某種程度上不正確。添加php代碼每個12項目從第二項開始

<?php if(($counter == 2) || ($counter == 14) || ($counter == 26) || ($counter == 38) || ($counter == 50) || ($counter == 62) || ($counter == 74) || ($counter == 86) || ($counter == 98 .... ?> 

感謝您的幫助!

+0

對您來說可能會有用,包括模數sta你嘗試的方式。這樣,我們可以幫助清除您對使用模運算符的任何誤解。 – shrmn

回答

5

回答

看看在Modulus operator (%)

<?php 
    if (($counter - 2) % 12 == 0) { 
     //.... 
    } 
?> 

說明

模運算符($a % $b)是的餘除以$b

  • $counter - 2 - 因爲你已經從一個的2偏移,從$counter
  • % 12刪除 - 將返回$counter - 2通過12
  • == 0所得的餘數 - 如果上述收益0,你知道它是完全整除的
+0

爲什麼不'if($ counter%12 === 2)...'? – naomik

+0

@naomik,因爲OP表明他想檢查「*從第二項*開始的每個12項*」 – Ben

+0

@naomik我回答了這種方式(刪除答案,因爲這一個更好)您還需要檢查$ counter == 2也。 – PVL

1

你可以簡化@B enPearlKahan的回答與

if ($counter % 12 === 2) { ... 

認爲它是這樣的:

$offset = 0; 
if ($counter % 12 === $offset) { ... 

要開始在櫃檯位置2,而不是0,只是改變了偏移

$offset = 2; 
if ($counter % 12 === $offset) { ... 

證明

0 % 12 === 2 #=> false 
1 % 12 === 2 #=> false 
2 % 12 === 2 #=> true 
3 % 12 === 2 #=> false 
4 % 12 === 2 #=> false 
5 % 12 === 2 #=> false 
6 % 12 === 2 #=> false 
7 % 12 === 2 #=> false 
8 % 12 === 2 #=> false 
9 % 12 === 2 #=> false 
10 % 12 === 2 #=> false 
11 % 12 === 2 #=> false 
12 % 12 === 2 #=> false 
13 % 12 === 2 #=> false 
14 % 12 === 2 #=> true 
15 % 12 === 2 #=> false 
16 % 12 === 2 #=> false 
17 % 12 === 2 #=> false 
18 % 12 === 2 #=> false 
19 % 12 === 2 #=> false 
20 % 12 === 2 #=> false 
21 % 12 === 2 #=> false 
22 % 12 === 2 #=> false 
23 % 12 === 2 #=> false 
24 % 12 === 2 #=> false 
25 % 12 === 2 #=> false 
26 % 12 === 2 #=> true 
27 % 12 === 2 #=> false 
28 % 12 === 2 #=> false 
29 % 12 === 2 #=> false 
30 % 12 === 2 #=> false 
31 % 12 === 2 #=> false 
32 % 12 === 2 #=> false 
33 % 12 === 2 #=> false 
34 % 12 === 2 #=> false 
35 % 12 === 2 #=> false 
36 % 12 === 2 #=> false 
37 % 12 === 2 #=> false 
38 % 12 === 2 #=> true 
39 % 12 === 2 #=> false 
40 % 12 === 2 #=> false 
41 % 12 === 2 #=> false 
42 % 12 === 2 #=> false 
43 % 12 === 2 #=> false 
44 % 12 === 2 #=> false 
45 % 12 === 2 #=> false 
46 % 12 === 2 #=> false 
47 % 12 === 2 #=> false 
48 % 12 === 2 #=> false 
49 % 12 === 2 #=> false 
50 % 12 === 2 #=> true 
# ... 
+0

謝謝:)只是檢查它的作品呢! – MIC

相關問題