2014-02-24 205 views
0

我基本上想通過添加到以前的值來更改多維數組的值。PHP - 添加到多維數組的值

例子:

$arr=array(1,2,3); 

foreach($arr as $val){ 
    $arrTotal[1][2][3]=$val; 
} 

這將使$ arrTotal [1] [2] [3] = 3

我真正想要的是$ arrTotal [1] [2] [3] = 6

3 + 2 + 1。

我已經試過的方法,像這樣:

$arrTotal[1][2][3]+=$val; 

,但無濟於事。

回答

8

最簡單的方法:

$arr = array(1,2,3); 
$arrTotal[1][2][3] = array_sum($arr); 
0
$arrTotal[1][2][3] = 0; 
foreach($arr as $val){ 
    $arrTotal[1][2][3] = $arrTotal[1][2][3] + $val; 
} 
+1

不是最簡單的方法;-) – francadaval

1

更通用的解決方案:

<?php 

function hierarchical_array_sum(array $arr) { 
    $parent = null; 
    $current = $total = new ArrayObject; 
    foreach ($arr as $val) { 
     $parent = $current; 
     $current = $current[$val] = new ArrayObject; 
    } 
    if ($parent !== null) { 
     $parent[$val] = array_sum($arr); 
    } 
    $total = json_decode(json_encode($total), true); 
} 

var_dump(hierarchical_array_sum(array(1, 2, 3, 4, 5, 6, 7)));