如何在PHP中创建一个具有预定义大小的空数组?

2022-08-30 08:23:01

我正在 for 循环中创建一个新数组。

for $i < $number_of_items
    $data[$i] = $some_data;

PHP一直在抱怨偏移量,因为对于每次迭代,我都会为数组添加一个新的索引,这有点愚蠢。

Notice: Undefined offset: 1 in include() (line 23 of /...
Notice: Undefined offset: 1 in include() (line 23 of /..
Notice: Undefined offset: 1 in include() (line 23 of /..

有没有办法预定义数组中的数字项,以便PHP不会显示此通知?

换句话说,我是否可以以类似的方式预定义数组的大小?

$myarray = array($size_of_the_earray);

答案 1

如果不为预定义大小的数组提供值,则无法创建该数组的元素。


初始化类似数组的最佳方法是array_fill。到目前为止,优于各种循环和插入解决方案。

$my_array = array_fill(0, $size_of_the_array, $some_data);

将包含 中的每个位置。$my_array$some_data

中的第一个零仅指示需要用值填充数组的索引。array_fill


答案 2

潜在相关 - 如果你想初始化并用一系列值填充数组,请使用PHP的(等待它...)范围功能

$a = range(1, 5);  // array(1,2,3,4,5)
$a = range(0, 10, 2); // array(0,2,4,6,8,10)