function print_r2($data) { echo "<pre>"; print_r($data); echo "</pre>"; }$lines = [ ["SRCIP","DSTIP","pktsin","bytesin","protocol","port"], ["1.1.1.1","2.2.2.2",1,10,TCP,3389], ["1.1.1.1","2.2.2.2",1,100,UDP,49], ["1.1.1.1","3.3.3.3",1,100,TCP,80], ["4.4.4.4","2.2.2.2",1,25,TCP,80], ["1.1.1.1","2.2.2.2",1,10,TCP,3389], ["1.1.1.1","2.2.2.2",1,100,UDP,49], ]; $results = []; foreach ($lines as $line) { $results[$line[0]] = (isset($results[$line[0]])) ? $results[$line[0]] : []; $results[$line[0]][$line[1]][$line[4]][$line[5]]['pktsin'] = isset($results[$line[0]][$line[1]][$line[4]][$line[5]][pktsin]) ? $results[$line[0]][$line[1]][$line[4]][$line[5]][pktsin] + $line[2] : $line[2]; $results[$line[0]][$line[1]][$line[4]][$line[5]]['bytesin'] = isset($results[$line[0]][$line[1]][$line[4]][$line[5]][bytesin]) ? $results[$line[0]][$line[1]][$line[4]][$line[5]][bytesin] + $line[3] : $line[3]; } $co=0; //print_r2($results); foreach ($results as $key => $value) { $sa=$key; foreach ($results[$sa] as $key => $value) { $da=$key; foreach ($results[$sa][$da] as $key => $value) { $proto=$key; foreach ($results[$sa][$da][$proto] as $key => $value) { $port=$key; $pktsin= $results[$sa][$da][$proto][$port][pktsin]; $bytesin=$results[$sa][$da][$proto][$port][bytesin]; $arr_aggr[$co]=[$sa,$da,$proto,$port,$bytesin,$pktsin]; $co++ ; } } } } print_r2($arr_aggr);
|