PHP - 添加到多维数组的值

时间:2014-02-24 12:37:48

标签: php arrays

我基本上想通过添加到前一个值来更改多维数组的值。

示例:

$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;

但无济于事。

3 个答案:

答案 0 :(得分:8)

最简单的方法:

$arr = array(1,2,3);
$arrTotal[1][2][3] = array_sum($arr);

答案 1 :(得分: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)));

答案 2 :(得分:0)

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