2011-01-27 29 views
5

Tôi có một câu hỏi nhanh, có thể dễ dàng trả lời. Tôi đã goolged xung quanh, nhưng không chắc chắn nếu tôi đang tìm kiếm một cách chính xác hoặc những gì. Dù sao, bằng cách sử dụng PHP, làm thế nào tôi có thể tăng thêm một nửa?PHP Tăng thêm một nửa

Ví dụ, tôi biết tôi có thể sử dụng vòng lặp sau:

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

Và nó sẽ in 1 - 20.

Nhưng, làm thế nào tôi có thể lấy nó để đầu ra giống như sau:

1 
1.5 
2 
2.5 
etc... 

Xin lỗi vì sự thiếu hiểu biết của tôi về điều này, tôi không chắc chắn về cách thực hiện. Cảm ơn!

Trả lời

22

Thay đổi $i++ thành $i += 0.5. Ngoài ra, để in từng số trên một dòng riêng, bạn cần sử dụng \n (hoặc <br> nếu bạn xuất HTML sang trình duyệt).

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

Mã trên sẽ in 20.5 vì mã này nhỏ hơn 21. Nếu bạn muốn in tối đa là 20, thay đổi điều kiện vòng lặp để kiểm tra $i <= 20 thay vì:

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

+1 Để chỉ ra sự khác biệt 20/20.5. –

2

Vòng tăng gấp đôi số tiền (điều chỉnh giới hạn trên và dưới một cách thích hợp) và chia cho hai ở đầu ra.

Ví dụ:

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

để đầu ra 1-20 trong từng bước của .5

8

Chỉ cần một giải pháp hơn để lựa chọn.

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

+1 Tôi đã thực sự ** chờ đợi ** để ai đó đăng bài này ... :) – BoltClock

+0

+1 Giải pháp hay, nhưng * sắp xếp * của một câu trả lời cho một câu hỏi khác. Ish. Kinda. :-) –

0

Đây là thứ có thể hoạt động.

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

Hài kịch, nhưng không thực sự là một câu trả lời hữu ích. (Và nó có thể, mặc dù thừa nhận rất không chắc chắn, rằng họ có thể thay đổi các giá trị của ENT_QUOTES, vv hằng số trong tương lai.) –

Các vấn đề liên quan