loops — добавьте php-код каждые 12 пунктов, начиная со второго

У меня есть петля. Как я могу оптимизировать этот код, чтобы он выполнялся каждые 12 пунктов, начиная со 2-го пункта. Я использую жестко закодированный код для каждого элемента +12, но, конечно, это не очень хорошее решение 🙂 Я знаю, что это легко сделать, и я пытался сделать это с помощью оператора модуля, однако он работал как-то неправильно.

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

Спасибо за помощь!

2

Решение

Ответ

Посмотрите на Оператор модуля (%):

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

объяснение

Оператор модуля ($a % $b) является остатком $a деленное на $b,

  • $counter - 2 — как вы начинаете со смещением 2удалите это из $counter
  • % 12 — вернет остаток $counter - 2 деленное на 12
  • == 0 — если выше вернется 0вы знаете, что это точно делится
5

Другие решения

Вы можете упростить ответ @ BenPearlKahan с помощью

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
# ...
1

По вопросам рекламы [email protected]