基本上我需要创建这个数组(给定x = 3)
array('?','?','?');
我能做到
for($i=0;$i<3;$i++)
$arr[]='?';
但它并不那么优雅。还有其他办法吗?
答案 0 :(得分:19)
使用array_fill( start_index, num, value ):
$arr = array_fill(0, 3, '?');
答案 1 :(得分:0)
为了解决如何将同一元素多次推入数组的问题,值得注意的是,虽然 array_fill()
无疑是生成新数组的最优雅的选择,这是它唯一能做的。它实际上无法将元素推送到现有数组上。
因此,虽然基本循环并不是特别令人兴奋,但它确实适用于您想要添加现有数组的情况,无论它是否已经为空。
$arr = ['a', 'a', 'a'];
for ($i = 0; $i < 3; $i++) {
$arr[] = 'b';
}
print_r($arr);
Array
(
[0] => a
[1] => a
[2] => a
[3] => b
[4] => b
[5] => b
)
要使用 array_fill()
实现相同的目的,它需要额外的合并:
$arr = array_merge($arr, array_fill(0, 3, 'b'));