LINUX.ORG.RU

Re: Perl: как свернуть двумерный массив по одному полю, и просуммировать по второму?

use hash?

Neksys ★★★ ()

Re: Perl: как свернуть двумерный массив по одному полю, и просуммировать по второму?

что значит свернуть по одному полю?

anonymous ()

Re: Perl: как свернуть двумерный массив по одному полю, и просуммировать по второму?

Не вкурил вопрос... как-нить расшифруй... а то любопытно...

Onanim ()

Re: Perl: как свернуть двумерный массив по одному полю, и просуммировать по второму?

ну например есть массив:

$a=(['str1',12], ['str2',15], ['str1',2]);

как можно получить из него такой массив: (['str1',14] ['str2',15]) ?

staks ()

Re: Perl: как свернуть двумерный массив по одному полю, и просуммировать по второму?

Нагородил ты...для таких задач и придумали хэши.

#!/usr/bin/env perl
use strict;

my @a=(['str1',12], ['str2',15], ['str1',2]);
my %b;

for (@a){
    $b {$_->[0]} += $_->[1];
}

# получаешь хэш %b - ключами которого являются 
# str1,str2 и т.д. а значениями соответственно
# сумма значений одноименного ключа.

die $b{str1};

anonymous ()

Re: Perl: как свернуть двумерный массив по одному полю, и просуммировать по второму?

но самые тонкие извращенцы могут всё добро загнать в sql'ую базу и потом одним запросом наковырять результат :)

Pi ★★★★★ ()

Re: Perl: как свернуть двумерный массив по одному полю, и просуммировать по второму?

собсно шо я сделал :) точнее все это добро там и было, тока в разных базах

в общем, пасиба

staks ()

Re: Perl: как свернуть двумерный массив по одному полю, и просуммировать по второму?

>собсно шо я сделал :-) точнее все это добро там и было, тока в разных базах

хех... собсно ты это и должен был сделать, имея данные в базе.

Pi ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.