2012-04-03 116 views
4

是否可以根据数值将数字分成一个数组?将单个值分成一个数组

例如:

$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(); ($ i = 0; $ i <$ value; $ i ++) $ toArray [] = 1; 返回$ toArray; } – Sachin 2012-04-03 04:44:37

+0

你想要发生负数还是零? – 2012-04-03 04:49:03

+0

该值不可能为负数或零。 – Lea 2012-04-03 04:58:28

回答

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

做这样的事情:

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

但具有较大的数字,您可能需要不同的东西。

3
array_fill(0, $val, 1); 

建立一个数组

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

aw ninja'd by 17 secs:p – DdD 2012-04-03 04:47:58

1

另一个稍短解决方案是使用range()

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

这是不可能的值是负的,或零。

这很好,因为所有这些解决方案(包括循环)都不能使用零或负值。然而,range()会给你一个不同的结果(例如1到3的5位数字范围)。

相关问题