Tom
Tom

Reputation: 781

Target a key in a multidimensional array

I have an an array like so.

Array
(
[162 D Dr.] => Array
    (
        [smi_discover] => 0
        [smi_totalmonthccsales] => 12568
        [smi_amex] => 0
        [smi_visamc] => 12568
        [smi_ebt] => 0
        [smi_includeindeal] => 0
        [smi_debit] => 0
        [smi_batches] => 7
    )
 [16ee22 D Dr.] => Array
    (
        [smi_discover] => 0
        [smi_totalmonthccsales] => 125368
        [smi_amex] => 0
        [smi_visamc] => 12568
        [smi_ebt] => 0
        [smi_includeindeal] => 0
        [smi_debit] => 0
        [smi_batches] => 7
    )
)

This key [162 D Dr.] could be anything. [16e2 D Dree.], [332 D44 Drdds].

How can I loop through this and add up smi_totalmonthccsales and add it to the parent array so I end up with something like this

['total'] = sum of smi_totalmonthccsales in both address arrays
[162 D Dr.] => Array
    (
        [smi_discover] => 0
        [smi_totalmonthccsales] => 12568
        [smi_amex] => 0
        [smi_visamc] => 12568
        [smi_ebt] => 0
        [smi_includeindeal] => 0
        [smi_debit] => 0
        [smi_batches] => 7
    )

I have tried

foreach($newnewArr as $key) {
    if(isset($key['smi_totalmonthccsales']) && isset($key)){
        $ccArray[$key]['total'] +=$key['smi_totalmonthccsales'];
    } else {
        $ccArray[$key]['total'] = 0;
    }
}

Upvotes: 0

Views: 630

Answers (1)

Ry-
Ry-

Reputation: 225054

Just set it afterwards.

$total = 0;

foreach($arr as $key => $value) {
    $total += $value['smi_totalmonthccsales'];
}

$arr['total'] = $total;

You want a running total? Okay...

$total = 0;

foreach($arr as &$value) {
    $total += $value['smi_totalmonthccsales'];
    $value['total'] = $total;
}

Upvotes: 2

Related Questions