2012-04-03 7 views
4

数値をその値に基づいて配列に分割することは可能ですか?例えば単一の値を配列に分割する

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

しかし、より大きな数字で、あなたが別の何かが必要になる場合があります

$val = 3; 

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

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

したがって、値が5の場合は、長さ5の配列に変換する必要がありますか?その場合、forループを書くことはできませんか? プライベート関数toArray($ value){ $ toArray = array(); for($ i = 0; $ i <$ value; $ i ++) $ toArray [] = 1; return $ toArray; } – Sachin

+0

負の数またはゼロで何が起こりますか? –

+0

値が負またはゼロであることはできません。 – Lea

答えて

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

はこのような何かを行います。

3
array_fill(0, $val, 1); 

配列

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

aw ninja'd 17秒:p – DdD

1
別やや短いソリューションは、値が負であるためにはそれは不可能です range()

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

使用することです

、またはゼロを作成します。 。

これらのソリューション(ループを含む)はすべてゼロまたは負で動作しないため、これは良いことです。ただし、range()は、異なる結果を表示します(たとえば、1〜3の5桁の範囲)。

関連する問題