3 回答

TA贡献1802条经验 获得超5个赞
这将构建一个数组,其中第一个元素是单个值,第二个元素是另一个数组:
array($value1, array_fill(1, 2, 0))
即,你得到这个:
[633, [0, 0]]
如果你想要这个输出:
[633, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0]
然后你需要用一堆单一的值来构建数组。您可以通过将多个数组发送到 array_merge() 来做到这一点,这将提取值,然后将它们全部堆叠在一个数组中:
$new = array_merge(
[$value1],
array_fill(1, 2, 0)
[$value2],
array_fill(4, 9, 0)
);
我不确定“缺少逗号”是什么意思。

TA贡献1735条经验 获得超5个赞
array($value1, array_fill(1, 2, 0));当你想要一个时,你正在制作一个多维数组。您正在使用具有您的编号的第一个值创建一个数组,第二个值是一个数组:
(
[0] => 633
[1] => Array
(
[1] => 0
[2] => 0
)
)
然后,数组合并会将这两个多维数组放在一起,得到您当前得到的结果。
你会想要这样的东西:
$finalArray = array_merge(
[$value1],
array_fill(1, 2, 0)
[$value2],
array_fill(4, 9, 0)
);
另外,那个4应该是3吗?

TA贡献1874条经验 获得超12个赞
如果您使用的是 PHP 7.4,您还可以array_fill在创建前两个数组时解压缩结果。
$array1 = array($value1, ...array_fill(1, 2, 0));
$array2 = array($value2, ...array_fill(4, 9, 0));
然后array_merge意志按原样工作。
或者(除非您需要其他$array1东西$array2)您可以以相同的方式构建最终数组,而无需array_merge.
$finalArray = [$value1, ...array_fill(1, 2, 0), $value2, ...array_fill(4, 9, 0)];
如果您不使用 PHP 7.4... 没关系。:-)
- 3 回答
- 0 关注
- 170 浏览
添加回答
举报