-5

I have the following array

$data = array (
    "192.168.10.101" => array (
        "param1" => 80,
        "param2" => 3
    ),

    "192.168.10.99" => array (
        "param1" => 50,
        "param2" => 4
    )
);

I want to sum the value of common keys like sum param1 of 192.168.10.101 with param1 of 192.168.10.99.

kero
  • 10,647
  • 5
  • 41
  • 51
bring2dip
  • 886
  • 2
  • 11
  • 22
  • When i tried the method of " http://stackoverflow.com/questions/1496682/how-to-sum-values-of-the-array-of-the-same-key " it gives an error: Notice: Undefined index: param1 in D:\webdocuments\array.php on line 20 Notice: Undefined index: param2 in D:\webdocuments\array.php on line 20 – bring2dip Nov 29 '13 at 05:10

5 Answers5

1
$result = array_shift($array);
foreach ($array as $val) {
    foreach ($val as $key => $val) {
        $result[$key] += $val;
    }
}

print_r($result)

Array ( 
    [param1] => 130 
    [param2] => 7 
) 
Harish Singh
  • 3,359
  • 5
  • 24
  • 39
0
$myArray = array(
    "192.168.10.101" => array (
        "param1" => 80,
        "param2" => 3
    ),

    "192.168.10.99" => array (
        "param1" => 50,
        "param2" => 4
    )
);
$sumArray = 0;
foreach ($myArray as $k=>$subArray) {
  if(isset($subArray['param1']))
    $sumArray +=$subArray['param1'];
}

print_r($sumArray);
웃웃웃웃웃
  • 11,829
  • 15
  • 59
  • 91
0
<?php
$data = array(
    "192.168.10.101" => array (
        "param1" => 80,
        "param2" => 3
    ),

    "192.168.10.99" => array (
        "param1" => 50,
        "param2" => 4
    )
);
$param_1=0;
$param_2=0;
foreach($data as $dat)
{
    $param_1+=$dat['param1'];
    $param_2+=$dat['param2'];

}

echo $param_1;
echo $param_2;
Manigandan Arjunan
  • 2,260
  • 1
  • 25
  • 42
0
$param_total = 0;
foreach($data as $key => $val){
    $param_total += $val['param1'];
}
echo $param_total;
Casperon
  • 107
  • 12
0

You can try like, (for the existence of key)

  if(isset($data['192.168.10.101']["param1"]) && isset($data['192.168.10.99']["param1"]))
  {
     $data['192.168.10.101']["param1"] += $data['192.168.10.99']["param1"];
  }
Adil Abbasi
  • 3,161
  • 1
  • 40
  • 35