将单个值分割成数组

4

是否有可能根据数字的值将其分成数组?

例如:

$val = 3;

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

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

2
如果$value的值是5,那么它应该转换为长度为5的数组吗?如果是这样,你不能直接写一个for循环吗?私有函数 toArray($value){ $toArray = array(); for($i=0;$i<$value;$i++) $toArray[] = 1; return $toArray; } - Sachin
负数或零的情况下,您希望发生什么? - Wesley Murch
该值不可能为负数或零。 - Lea
4个回答

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

3
array_fill(0, $val, 1);

将创建一个数组。
Array
(
[0] => 1
[1] => 1
[2] => 1
) 

1

做类似这样的事情:

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

但是对于更大的数字,您可能需要使用不同的方法。


1
另一个稍微简短的解决方法是使用range()
$val = 3;
$array = range(1, $val);
print_r($array);
// Output:
// Array
// (
    // [0] => 1
    // [1] => 2
    // [2] => 3
// )

这很好,因为所有这些解决方案(包括循环)都无法处理零或负数。但是,range()将会给您一个不同的结果(例如,1到-3的5位数范围)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接