summing an array of arrays [message #173501] |
Sat, 16 April 2011 00:06 |
jr
Messages: 4 Registered: January 2011
Karma: 0
|
Junior Member |
|
|
$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
|
|
|
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: 0
|
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
|
|
|
Re: summing an array of arrays [message #173516 is a reply to message #173515] |
Sun, 17 April 2011 14:58 |
jr
Messages: 4 Registered: January 2011
Karma: 0
|
Junior Member |
|
|
On Apr 16, 11:55 pm, Unrest <unr...@nullvector.org> wrote:
> 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
thanks I was trying to do it some more this morning and I was getting
the idea going but it is hard to think recursively so it helps to see
the example. I have some more like this thanks,
|
|
|