note 57232 added to function.array-sum

From: Date: Tue, 27 Sep 2005 20:06:15 +0000
Subject: note 57232 added to function.array-sum
Groups: php.notes 
Request: Send a blank email to php-notes+get-95897@lists.php.net to get a copy of this message
I ran into a situation where I only wanted to sum elements of an array for certain keys. For that, I wrote this function <? function array_sum_by_key() { $args = func_get_args(); $arr = array_shift($args); $to_sum = is_array($args[0]) ? $args[0] : $args; $sum = 0; foreach ( $arr as $k=>$v ) { if ( in_array($k, $to_sum) ) { $sum += $v; } } return $sum; } $arr = array ( 'dog' => 1, 'cat' => 2, 'rat' => 4, 'mat' => 8, 'bat' => 16 ); echo array_sum_by_key($arr, 'dog', 'mat'); // Result: 9 ?> Alternatively, you can pass the keys to sum as an array <? $to_sum = array('dog', 'bat'); echo array_sum_by_key($arr, $to_sum); // Result: 17 ?> ---- Manual Page -- http://www.php.net/manual/en/function.array-sum.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+57232 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+57232&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+57232&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+57232&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+57232&report=yes&reason=useless Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+57232&report=yes&reason=non-english Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+57232&report=yes&reason=already+in+docs Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+57232&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+57232&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#95897) next »