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 關注
- 190 瀏覽
添加回答
舉報