sum two arrays by indexes

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

•  Subject
• Author
• Posted on
I'm looking for a short way of suming the indexes of two arrays and
returning one array as the result. I'm not referring to what
array_sum() is capable of doing. Below will get it done; but is there
any built in function doing the same??

function sum_by_index(\$array1,\$array2) {
for (\$i = 0; \$i <= (count(\$array1) -1); \$i++) {
\$temp[\$i] = \$array1[\$i] + \$array2[\$i];
}

return \$temp;
}//note both \$array1 and \$array2 are to be of the same size

Regards,
Gerard.

Re: sum two arrays by indexes

Gerard Matthew wrote (in part):

The following function does the same as yours with the added
functionality that it works with associative arrays also:

function sum_by_index(\$ary1,\$ary2)
{
\$tmp = array();
foreach(\$ary1 as \$k=>\$v) \$tmp[\$k] = \$v + \$ary2[\$k];
return(\$tmp);
}

In your function, why do you use

for (\$i = 0; \$i <= (count(\$array1) -1); \$i++)

when

for (\$i = 0; \$i < count(\$array1); \$i++)

works just as well (and almost everyone else uses it).

Ken

Re: sum two arrays by indexes

Gerard Matthew wrote:

Not that I know of.

Nothing wrong with that.  Although it might be slightly more efficient
as such:

function sum_by_index(&\$array1, &\$array2) {
for(\$i = (count(\$array1) - 1); \$i >= 0; \$i++)
\$temp[\$i] = \$array1[\$i] + \$array[\$i];
return \$temp;
}

Re: sum two arrays by indexes

If you want to look clever by baffling others:

\$sum = array_map('array_sum', array_map(null, \$array1, \$array2));