2012-04-03 8 views
4

Ist es möglich, eine Zahl basierend auf ihrem Wert in ein Array einzuteilen?Einzelnen Wert in ein Array aufteilen

Zum Beispiel:

$val = 3; 

// do something here to convert the number 3 into 1's 

Array 
(
    [0] => 1 
    [1] => 1 
    [2] => 1 
) 
+2

Also, wenn der Wert 5 ist, sollte es in ein Array der Länge 5 konvertieren? Wenn das der Fall ist, können Sie nicht einfach eine For-Schleife schreiben? private Funktion toArray ($ value) { $ toArray = array(); für ($ i = 0; $ i <$ Wert; $ i ++) $ toArray [] = 1; Rückgabe $ toArray; } – Sachin

+0

Was möchten Sie mit negativen Zahlen oder Null passieren? –

+0

Es ist nicht möglich, dass der Wert negativ oder null ist. – Lea

Antwort

6
$array = array_fill(0, $val, 1); 
1

Tun Sie etwas wie folgt aus:

$arr = Array(); 
for ($i=0;$i<$val;$i++) { 
    $arr[] = 1; 
} 

Aber mit größeren Zahlen Sie etwas anderes benötigen.

3
array_fill(0, $val, 1); 

wird ein Array

Array 
(
[0] => 1 
[1] => 1 
[2] => 1 
) 
+3

aw ninja'd von 17 Sekunden: p – DdD

1

Eine weitere etwas kürzer Lösung schaffen range()

$val = 3; 
$array = range(1, $val); 
print_r($array); 
// Output: 
// Array 
// (
    // [0] => 1 
    // [1] => 2 
    // [2] => 3 
//) 

Es ist nicht möglich zu verwenden, um den Wert negativ, oder Null .

Das ist gut, weil alle diese Lösungen (einschließlich Schleifen) nicht mit einer Null oder negativ arbeiten. Jedoch gibt range() Ihnen ein anderes Ergebnis (der 5-stellige Bereich von 1 bis -3 zum Beispiel).

Verwandte Themen