note 108555 deleted from function.array-sum by levim

From: Date: Tue, 18 Mar 2014 19:41:04 +0000
Subject: note 108555 deleted from function.array-sum by levim
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-198961@lists.php.net to get a copy of this message
Note Submitter: pablo114 at interia dot eu ---- If you want to sum all values (horizontal or vertical) use this function: <?php function sumArray($array, $params = array('direction' => 'x', 'key' => 'xxx'), $exclusions = array()) { if(!empty($array)) { $sum = 0; if($params['direction'] == 'x') { $keys = array_keys($array); for($x = 0; $x < count($keys); $x++) { if(!in_array($keys[$x], $exclusions)) $sum += $array[$keys[$x]]; } return $sum; } elseif($params['direction'] == 'y') { $keys = array_keys($array); if(array_key_exists($params['key'], $array[$keys[0]])) { for($x = 0; $x < count($keys); $x++) { if(!in_array($keys[$x], $exclusions)) $sum += $array[$keys[$x]][$params['key']]; } return $sum; } else return false; } else return false; } else return false; } ?> Some examples now: <?php $array1 = array('myKey1' => 2, 'myKey2' => 5, 'myKey3' => 8); $array2 = array(array('myKey1' => 2, 'myKey2' => 5, 'myKey3' => 8), array('myKey1' => 2, 'myKey2' => 5, 'myKey3' => 8)); /*Sum an array*/ print_r(sumArray($array1)); //outputs: 15 /*Sum an array without adding "myKey2" key*/ print_r(sumArray($array1, array('direction' => 'x'), array('myKey2'))); //outputs: 10 /*Sum a multi-dimensional array horizontally without adding "myKey3" key*/ print_r(sumArray($array2[0], array('direction' => 'x'), array('myKey3'))); //outputs: 7 /*Sum a multi-dimensional array vertically (by "myKey1" key) without adding [0] row*/ print_r(sumArray($array2, array('direction' => 'y', 'key' => 'myKey1'), array('0'))); //outputs: 2 ?>

« previous php.notes (#198961) next »