2016-07-27 6 views
7

Ai đó có thể cho tôi biết làm cách nào tôi có thể tạo mảng số động, mà không cần bất kỳ cho vòng lặp nào?Cách tự động tạo một mảng từ 10 đến 100 với khoảng cách 10 giữa các giá trị?

ví dụ: Tôi muốn tạo mảng như:

[0] => 10 
[1] => 20 
[2] => 30 
[3] => 40 
    .. 
[9] => 100 
+0

Thay vì "$ values ​​[$ idx]", tại sao không chỉ sử dụng "($ idx + 1) * 10"? – Mike

+3

Vì vậy, trong [tag: php] bạn nhận được bảy upvotes cho việc không đọc tài liệu? –

Trả lời

27

Bạn có thể sử dụng range(). Đối số thứ ba là số bước giữa các giá trị khi nội suy giữa giá trị bắt đầu và kết thúc.

$numbers = range(10, 100, 10); 
+2

Ý tưởng hay, nhưng mã của bạn sẽ tạo một mảng với các giá trị '1',' 11', v.v. Bạn cần sử dụng 'phạm vi (10, 100, 10)' – roberto06

+0

Không @ roberto06 mã của bạn là sai thử như '$ number = range (10, 100, 10); ' –

+0

Vâng, bạn nói đúng, tôi đã chỉnh sửa nhận xét của tôi, cảm ơn – roberto06

4

1.You có thể sử dụng for vòng lặp như dưới đây (không ghét for loop): -

<?php 
$numbers = array(); 
for($i=10;$i<=100;$i=$i+10) 
{ 
    $numbers[] = $i; 
} 

print_r($numbers); 
?> 

Output: - https://eval.in/612601

2. range() tùy chọn (tốt hơn): -

<?php 

$numbers = range(10, 100, 10); 
print_r($numbers); 
?> 

Output: - https://eval.in/612607

+0

Unset ($ number [0])? Tại sao bạn sẽ làm điều đó và không chỉ sử dụng phạm vi (10, 100, 10)? Chỉnh sửa: nhận xét không liên quan do chỉnh sửa .. – Clemenz

+1

Nhận thấy. Trong vòng lặp for bạn có thể tăng $ i bằng cách sử dụng $ i + = 10. Mã ngắn hơn, chỉ cần một cái đầu lên. – Clemenz

5

sử dụng

$numbers = range(10, 100, 10); 

Nó sẽ tạo ra và mảng bắt đầu với 10 đến 100 với 10 bước.

7

câu trả lời tốt trước tôi, nhưng là tốt nhất, những gì phù hợp chính xác nhiệm vụ của bạn là sử dụng range(start, end, step) theo cách này:

$numbers = range(10, 100, 10); 

var_dump($numbers); 
4

Bạn có thể sử dụng nhiều cách khác nhau.

Sử dụng một vòng lặp for:

$dynamic_array = []; 
for($i = 10; $i <= 100; $i += 10){ 
    $dynamic_array[] = $i; 
} 

print_r($dynamic_array); 

Dùng làm, trong khi vòng lặp:

$dynamic_array2 = []; 
$i = 10; 
do{ 
    $dynamic_array2[] = $i; 
    $i += 10; 
} while($i <= 100); 

print_r($dynamic_array2); 

Sử dụng Range() chức năng:

$dynamic_array3 = range(10, 100, 10); 

print_r($dynamic_array3); 

tôi sẽ đề nghị các chức năng phạm vi vì nó là ngắn nhất và dễ nhất.

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