Упростите условие PHP

#php

#php

Вопрос:

У меня есть цикл, который создает шестиугольники 3 в строке, но в коде есть небольшая ошибка, если 3 не используются в строке. Чтобы обойти это, я применял отрицательную позицию, используя условный код, но, очевидно, это не сработает без добавления условий к каждому шагу.

Кто-нибудь знает способ упростить следующее для будущей проверки? Условие просто проверяется с шагом 3.

 if($i == 3) {  echo ".hex-2 { left: -24.7%;}"; } else if($i == 6) {  echo ".hex-5 { left: -24.7%;}"; } else if($i == 9) {  echo ".hex-8 { left: -24.7%;}"; }  

Я бы тоже хотел что-то сделать для этого массива, который имеет значение 2, затем 1, затем 2 и так далее;

 if(in_array($i, array(1,3,4,6,7,9,10,12,13,15,16,18,19,21,22,24,25,27,28,30,31))) { echo "lt;/divgt;lt;div class='hex-wrap'gt;"; };  

Возможно ли это?

Ответ №1:

Это должно сделать это, хотя это определенно можно как-то украсить:

 $numbers = [];  $n = 1;  $numbers[] = $n;  while ($n lt; 29) // Or whichever is the allowed maximum number  {  $n  = 2;  $numbers[] = $n;  $n  = 1;  $numbers[] = $n;  }  

И затем:

if (in_array($i, numbers)) { echo "lt;/divgt;lt;div class='hex-wrap'gt;"; };