2016-07-27 8 views
7

Czy ktoś może mi powiedzieć, w jaki sposób mogę utworzyć tablicę liczb dynamicznie, bez żadnej pętli dla?Jak dynamicznie utworzyć tablicę od 10 do 100 z odstępem 10 między wartościami?

np. Chcę utworzyć tablicę typu:

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

Zamiast "$ values ​​[$ idx]", dlaczego nie po prostu użyć "($ idx + 1) * 10"? – Mike

+3

Tak więc w [tag: php] otrzymujesz siedem uptoew, jeśli nie czytasz dokumentacji? –

Odpowiedz

27

Można użyć range(). Trzecim argumentem jest liczba do step między wartościami podczas interpolacji między początkową i końcową wartością.

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

Dobry pomysł, ale twój kod utworzy tablicę z wartościami '1',' 11', itp. Musisz użyć 'range (10, 100, 10)' – roberto06

+0

No @ roberto06 Twój kod jest nieprawidłowy spróbuj np. '$ liczby = zakres (10, 100, 10); ' –

+0

Tak, masz rację, edytowałem mój komentarz, dziękuję – roberto06

4

1.You można użyć for pętli jak poniżej (nie nienawidzę for pętla): -

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

print_r($numbers); 
?> 

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

2. range() opcja (lepsza): -

<?php 

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

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

+0

Unset ($ numbers [0])? Dlaczego miałbyś to robić, a nie tylko używać zakresu (10, 100, 10)? Edycja: komentarz nieistotny z powodu edytowania .. – Clemenz

+1

Uwagi. W pętli for można zwiększyć $ i za pomocą $ i + = 10. Krótszy kod, tylko heads up. – Clemenz

5

zastosowanie

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

będzie tworzyć i tablicy począwszy od 10 do 100 z 10 etapów.

7

dobre odpowiedzi przede mną, ale najlepsze, co mecz dokładnie twoje zadanie to użyć range(start, end, step) ten sposób:

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

var_dump($numbers); 
4

można użyć na wiele sposobów.

użyć pętli for:

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

print_r($dynamic_array); 

użyć do, while:

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

print_r($dynamic_array2); 

Użyj Range() funkcja:

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

print_r($dynamic_array3); 

Chciałbym zaproponować Funkcja Zakres ponieważ jest najkrótsza i najłatwiejsza.

Powiązane problemy