2011-01-27 11 views
5

Tengo una pregunta rápida, que probablemente sea fácil de responder. He estado dando vueltas, pero no estoy seguro si estoy buscando correctamente o qué. De todos modos, usando PHP, ¿cómo puedo incrementar a la mitad?PHP Incremento por la mitad

Por ejemplo, sé que puedo usar el siguiente bucle:

<?php 
for ($i=1; $i<21; $i++) { 
    print($i); 
} 

y se imprimirá 1 - 20.

Pero, ¿cómo puedo conseguir que seria algo como lo siguiente:

1 
1.5 
2 
2.5 
etc... 

Disculpa mi ignorancia sobre esto, solo que no estoy seguro de cómo hacerlo. ¡Gracias!

Respuesta

22

Cambie $i++ a $i += 0.5. Además, para imprimir cada número en su propia línea, debe usar \n (o <br> si está enviando HTML a un navegador).

for ($i = 1; $i < 21; $i += 0.5) { 
    print($i . "\n"); 
} 

El código anterior imprimir 20.5 porque es menos de 21. Si desea imprimir un máximo de 20, cambiar la condición del bucle para comprobar $i <= 20 lugar:

for ($i = 1; $i <= 20; $i += 0.5) { 
    print($i . "\n"); 
} 
+0

+1 Para señalar la diferencia de 20/20,5. –

1

en lugar de $i++, utilice $i += .5

2

Loop duplicar la cantidad (ajustar los límites superior e inferior apropiada) y dividir por dos en la salida.

E.g.

for ($i=2; $i<41; $i++) print($i/2);

a la salida de 1 a 20 en incrementos de 0,5

8

Sólo una solución más para elegir.

foreach (range(1, 20, 0.5) as $i) { 
    // Do something with $i 
} 
+0

+1 En realidad estaba ** esperando ** a que alguien publicara esto ... :) – BoltClock

+0

+1 Buena solución, pero * tipo de * una respuesta a una pregunta diferente. Ish. Un poco :-) –

0

Aquí hay algo que podría funcionar.

$i += round(exp(log(2)/2) * 2)/2 - ENT_QUOTES + IMAGETYPE_JPEG; 
+0

Comedia, pero en realidad no es una respuesta útil. (Y es posible, aunque es muy poco probable, que puedan cambiar los valores de ENT_QUOTES, etc. constantes en el futuro). –

Cuestiones relacionadas