Подытог PHP из массива - PullRequest
       17

Подытог PHP из массива

0 голосов
/ 03 декабря 2011

Может кто-нибудь объяснить, как получить сумму значений, приходящихся на каждый из двух элементов внешнего массива? Я хочу закончить массивом, показывающим значения для каждой даты 18 ноября 2011 года и 22 ноября 2011 года. Вот данные массива:

Array
(
[Nov 18, 2011] => Array
    (
        [C] => Array
            (
                [T] => 49783.531672
                [X] => 25013.184
            )
        [S] => Array
            (
                [T] => 32908.863528
            )
        [I] => Array
            (
                [T] => 44561.52
            )
    )
[Nov 22, 2011] => Array
    (
        [C] => Array
            (
                [T] => -5168.944696
            )
        [S] => Array
            (
                [T] => -3823.890504
            )
    )
)

Спасибо за помощь.

Ответы [ 2 ]

4 голосов
/ 03 декабря 2011

Если вы хотите одну сумму на дату:

$totals = array();
foreach ($origarray as $date => $inner) {
    $totals[$date] = array_sum(array_map('array_sum', $inner));
}

Если вы хотите несколько сумм на дату:

$totals = array();
foreach ($origarray as $date => $item) {
    foreach ($item as $innerk => $innerv) {
        $totals[$date][$innerk] = array_sum($innerv);
    }
}
2 голосов
/ 03 декабря 2011

Сценарий будет выглядеть так:

$results = array();
foreach($array as $element){
    $sum = 0;
    foreach($element as $subelement){
        foreach($subelement as $item => $value){
            $sum = $sum + $value;
        }
    }
    array_push($results, $sum);
}

Это даст вам массив сумм.Конечно, вы можете назвать каждого из них, если хотите, и так далее.

Редактировать: Впереди меня.Отредактированная для меня сумма, а не счет

...