2010-01-28 8 views
6

Estoy tratando de establecer una variable basada en cierta lógica matemática (para envolver html específicos alrededor de los elementos).PHP Maths Logic

trabajé la mitad del problema, para golpear a 0, 3, 6, 9, 12

if(($i % 3) == 0) { // blah } 

ahora tengo que golpear a los siguientes números, 2, 5, 8, 11, 14, etc

¿Qué operación matemática podría hacer para alcanzar esta secuencia?

Respuesta

7
if($i % 3 == 1) 
if($i % 3 == 2) 

Modulo devuelve el resto, por lo que cuando coinciden con el 0, se obtiene el tercero, sexto, noveno, etc, ya que 0 se deja en la división.

Tan solo compruebe cuando queda 1 y quedan 2.

+0

lol, como Vi la secuencia después de publicarla, pensé en agregar una a $ iy ejecutar la misma prueba. esto es aún mejor sin embargo. muchas gracias, he estado pensando demasiado en eso. –

+1

una vez que se sienta cómodo con todas las cosas que Modulo puede hacer, se convertirá en un mejor programador. los novatos tienden a descartarlo como "algo elegante", mientras que de hecho es un operador esencial. también: no necesitas paréntesis alrededor de la expresión. –

2

if ((($ i-2)% 3) == 0) {// bla}

3

Junto con la respuesta de Tor Valamo se puede notar el patrón de (3 * $i) - 1

(3*1)-1 = 2 
(3*2)-1 = 5 
(3*3)-1 = 8 
    ...