Re: summing an array of arrays [message #173515 is a reply to message #173501] |
Sun, 17 April 2011 06:55 |
Unrest
Messages: 10 Registered: April 2011
Karma:
|
Junior Member |
|
|
Am Fri, 15 Apr 2011 17:06:12 -0700 schrieb jr:
> $aryTemp=("A"=>Array(1,5,3),
> "B"=>Array(15,20,52))
>
> sum_subarrays_by_key($aryTemp, $aryTemp[$key]
>
>
> function sum_subarrays_by_key($aryTemp, $key) sum=0;
> foreach($aryTemp as $sub_array){
>
> $sum += $sub_array[$key];}
> }
> return $sum:
> }
>
> What I want to know how to do is change the above script to make it add
> a 3rd array of arrays?
> c=> Array(C1=> Array(17,4,8), C2=>Array(1,4,10))
>
> thanks, Jan
Good morning Jan.
First off: I didn't even look at your code.
I implemented the solution to your problem with recursion - from scratch.
The example call sums to 0, as I subtract the sum of all the arrays'
values (197) from it.
It's lacking safeguards, but as the only intention was to show you how to
do such a task.. ;)
*------------ snip -----------*
function recurseSumArray($arr){
$sum=0;
foreach ($arr as $value){
if( ! is_array($value)){
$sum += $value;
}else{
$sum += recurseSumArray($value);
}
}
return $sum;
}
$arr = array('A'=>array(7,4,2),
'B'=>array(2,42,-1, 105),
'C'=>array(0,2,1, 33),
-197);
$sum = recurseSumArray($arr);
echo $sum;
*------------------------------*
If you've got any questions, feel free to ask.
Yours,
Michael
|
|
|