Re: Adding arrays
- From: Rami Elomaa <rami.elomaa@xxxxxxxxx>
- Date: Mon, 07 May 2007 20:21:57 +0300
ZeldorBlat kirjoitti:
On May 7, 11:05 am, dennis.spreng...@xxxxxxxxx wrote:Consider the following multi-dimensional array:
---------------------------
$arr = array(
array(3, 5, 7, 9),
array(2, 4, 6, 8),
array(1, 3, 5, 7)
);
function add_arrays($arr) {
for ($row = 0; $row < count($arr[0]); $row++) {
for ($column = 0; $column < count($arr[$column]); $column++) {
$totals[$row] = $totals[$row] + $arr[$column][$row];
}
}
print_r($totals);
}
add_arrays($arr);
---------------------------
This returns the following array:
Array ( [0] => 6 [1] => 12 [2] => 18 [3] => 24 )
These are the totals of the array's in $arr: 6 (3 + 2 + 1, added all
first elements), 12 (5 + 4 + 3, added all second elements), etc. This
took me quite a portion of the day to construct ;) However, I would
like add_arrays to return a multidimensional array like this:
Array (
Array ( [0] => 3 [1] => 5 [2] => 7 [3] => 9 ) // 1st row
Array ( [0] => 5 [1] => 9 [2] => 13 [3] => 17 ) // 1st row + second
row (i.e. 5 = 3 + 2)
Array ( [0] => 6 [1] => 12 [2] => 18 [3] => 24 ) // 1st _ 2nd + 3rd
row (i.e. 6 = 3 + 2 + 1)
)
Could somebody please help me building a function that does just that?
Adding one row to the previous one and adding the result to the output
array? Any help would be greatly apprectiated!
Here's one way. Obviously there are others, also.
function add_arrays_cumulative($arr) {
$out = array();
for($i = 0; $i < count($arr); $i++) {
This is hair-splitting, but since count($arr) is static, it would save some cpu cycles to store it in a variable instead of calling count() on each iteration:
for($i = 0, $limit=count($arr); $i < $limit ; $i++) {
Or better yet, iterate the array with foreach:
foreach($arr as $i => $row) {
if(!isset($out[$i]))
$out[$i] = array();
for($j = 0; $j < count($arr[$i]); $j++)
Same goes here.
I've gotten so used to foreach that I'm missing it a lot when I'm using a language that hasn't got such a structure... It's so convinient.
--
Rami.Elomaa@xxxxxxxxx
"Wikipedia on vähän niinq internetin raamattu, kukaan ei pohjimmiltaan
usko siihen ja kukaan ei tiedä mikä pitää paikkansa." -- z00ze
.
- Follow-Ups:
- Re: Adding arrays
- From: ZeldorBlat
- Re: Adding arrays
- References:
- Adding arrays
- From: dennis . sprengers
- Re: Adding arrays
- From: ZeldorBlat
- Adding arrays
- Prev by Date: Re: Adding arrays
- Next by Date: Re: Regular Expression to validate password
- Previous by thread: Re: Adding arrays
- Next by thread: Re: Adding arrays
- Index(es):
Relevant Pages
|