2016-07-27 6 views
7

Kann mir jemand sagen, wie kann ich Array von Zahlen dynamisch erstellen, ohne für Schleife?Wie erstellt man dynamisch ein Array von 10 bis 100 mit einer Lücke von 10 zwischen den Werten?

z.B. Ich möchte Array wie erstellen:

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

Anstelle von "$ values ​​[$ idx]", warum nicht einfach "($ idx + 1) * 10" verwenden? – Mike

+3

Also in [tag: php] erhalten Sie sieben upvotes für das Lesen der Dokumentation? –

Antwort

27

Sie könnten range() verwenden. Das dritte Argument ist die Zahl Schritt zwischen Werten bei der Interpolation zwischen den Start- und Endwerten.

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

Gute Idee, aber Ihr Code wird ein Array mit Werten von '1',' 11', etc. erstellen. Sie müssen 'range (10, 100, 10) verwenden' – roberto06

+0

Nein @ roberto06 Ihr Code ist falsch Versuch wie '$ Zahlen = Bereich (10, 100, 10); ' –

+0

Yep, du hast recht, ich habe meinen Kommentar bearbeitet, danke – roberto06

4

1.You for Schleife wie unten verwenden können (nicht for Schleife hassen): -

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

print_r($numbers); 
?> 

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

2. range() Option (besser): -

<?php 

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

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

+0

Unset ($ Zahlen [0])? Warum würdest du das tun und nicht nur den Bereich (10, 100, 10) benutzen? Edit: Kommentar nicht relevant wegen der Bearbeitung .. – Clemenz

+1

Noticed. In der for-Schleife können Sie $ i mit $ i + = 10 erhöhen. Kürzeren Code, nur ein Kopf hoch. – Clemenz

5

Verwendung

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

Es wird erstellt und Array mit 10 bis 100 mit 10 Schritten beginnen.

7

Gute Antworten vor mir, aber das Beste, was für Spiel genau Ihre Aufgabe ist range(start, end, step) auf diese Weise verwenden:

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

var_dump($numbers); 
4

Sie mehrere Möglichkeiten nutzen könnten.

Verwendung einer for-Schleife:

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

print_r($dynamic_array); 

ein Verwenden, while-Schleife:

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

print_r($dynamic_array2); 

Verwenden der Range() Funktion:

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

print_r($dynamic_array3); 

ich die Range-Funktion würde vorschlagen wie es ist der kürzeste und einfachste.

Verwandte Themen