2013-10-11 29 views
1

我正在使用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中做到這一點,我更喜歡這種方法。

+0

您當前的解決方案是蠻好的,沒有真正的理由去改變它 – zerkms

回答

0

這裏沒有內置的php函數來處理這個問題。你將不得不使用你已有的東西。您目前的解決方案也非常易於閱讀,而且完全符合其要求。

-1

你可以使用array_replace()訪問特定索引之前設置的默認值:

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

array(1) { 
[2]=> 
int(5) 
} 
+0

如果'$ A [2 ]'已經用42初始化了? PS:-1不是我的,但我同意它會打破現有數據 – zerkms

+0

不確定我是否正確理解問題,但是如果$ a已經具有索引2的值,它將被保留。 –