向不存在的数组元素添加值


Add value to non-existant array element

我正在使用PHP 5.3,需要向不存在的数组元素添加值。

下面是数组的外观示例:

$a[1] = 10;
$a[3] = 30;

以下是我想做的:

$a[2] += 5;

我知道array_fill()。但问题是我不知道最大范围会是多少。

现在我有这个:

if (!isset($a[2])) $a[2] = 0;
$a[2] += 5;

这可以解决问题,但是,当然,如果在PHP中有一种"内置"方法来做到这一点,我更喜欢这种方法。

没有内置的 php 函数来处理这个问题。你将不得不使用类似你已经拥有的东西。您当前的解决方案也非常易于阅读,并且完全符合预期。

您可以使用 array_replace() 在访问特定索引之前设置默认值:

$a = array();
$a = array_replace(array(2 => 0), $a);
$a[2] += 5;
var_dump($a);
array(1) {
 [2]=>
 int(5)
}