-5

How can I add the array elements by key? Thanks in advance! Please find the code snippet below

(
    [2] => Array
        (
            [addition_price] => Array
                (
                    [0] => 0
                    [1] => 40
                    [2] => 40
                )

    )

[3] => Array
    (
        [addition_price] => Array
            (
                [0] => 100
            )

    )

)

Desired result:

[2] = 0 + 40 + 40 = 80

[3] = 100

Himani
  • 245
  • 1
  • 2
  • 20
  • Possible duplicate of [Sum up values in multidimensional php array](https://stackoverflow.com/questions/23482452/sum-up-values-in-multidimensional-php-array) – GrumpyCrouton Aug 11 '17 at 18:03

3 Answers3

0

you should try this:

$array = [
    0 => [
        "addition_price" => [
            0,
            40,
            40
        ]
    ],
    1 => [
        "addition_price" => [
            100
        ]
    ],
];
foreach ($array as $key=>$value) {
    if(!empty($value['addition_price']) && is_array($value['addition_price'])){
        echo $key. " => " .array_sum($value['addition_price']). "<br>";
    }
}
perodriguezl
  • 430
  • 3
  • 13
-1

try this way, i hope it works:

foreach($array as $key => $value){
     $sum = 0;
     foreach($value['addition_price'] as $v){
          $sum += $v;
     }
     $array[$key] = $sum;
 }
Deblugger
  • 153
  • 1
  • 11
-2

Use array_sum for summing up, and array_map to do that for every item in the array

$result = array_map(
     function($a) { return array_sum($a['addition_price']); }, 
     $input
);
Peter van der Wal
  • 11,141
  • 2
  • 21
  • 29