2011-01-27 14 views
5

Mam szybkie pytanie, na które łatwo jest odpowiedzieć. Przełknąłem się, ale nie jestem pewien, czy szukam poprawnie, czy co. W każdym razie, używając PHP, w jaki sposób mogę zwiększyć o połowę?Przyrost PHP o połowę

Na przykład, wiem, że mogę użyć następującego pętlę:

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

I to wydrukować 1 - 20.

Ale jak mogę zmusić go do wyjścia coś jak poniżej:

1 
1.5 
2 
2.5 
etc... 

Przepraszam za moją niewiedzę w tej sprawie, po prostu nie jestem pewien, jak to zrobić. Dzięki!

Odpowiedz

22

Zmień $i++ na $i += 0.5. Ponadto, aby wydrukować każdy numer na osobnej linii, musisz użyć \n (lub <br>, jeśli wyświetlasz HTML w przeglądarce).

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

Powyższy kod wypisze 20.5 bo to mniej niż 21. Jeśli chcesz wydrukować maksymalnie 20 zmienić stan pętli, by sprawdzić $i <= 20 zamiast:

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

+1 Za wskazanie różnicy 20/20,5. –

2

Loop podwoić ilość (wyregulować górne i dolne granice odpowiednio) i podzielić przez dwa na wyjściu.

E.g.

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

do wyjścia od 1 do 20 w przyrostach .5

8

Jeszcze jeden roztwór do wyboru.

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

+1 Tak naprawdę czekałem ** na kogoś, kto to napisze ... :) – BoltClock

+0

+1 Ładne rozwiązanie, ale * sort-of * odpowiedź na inne pytanie. Ish. Kinda. :-) –

0

Oto coś, co może zadziałać.

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

Komedia, ale niezbyt przydatna. (I jest możliwe, choć wprawdzie bardzo mało prawdopodobne, że mogą one w przyszłości zmienić wartości ENT_QUOTES itd.). –