Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Ruby: Общие вопросы > Работы с массивом |
Автор: zsftp 5.4.2008, 12:18 | ||||
Ruby начал изучать недавно. В данный момент возник затык, никак немогу придумать даже алгоритм. Имеется, к примеру, таблица биллинга вида:
Нужно скомпоновать ее по трафику, к виду:
|
Автор: shine 5.4.2008, 13:23 |
Что вы имеете ввиду под 'скомпоновать по трафику'? Если оба IP совпадают И оба порта совпадают, то байты складываем. Так? |
Автор: zsftp 5.4.2008, 15:05 |
Да, Вы правы. Но я немогу придумать, в каком виде в языке это хранить. В виде массивов многомерных или иначе? |
Автор: shine 5.4.2008, 16:41 | ||
Я бы делал массив в котором каждый элемент является хэшем (Hash):
В хэшах вы сможете использовать строковые переменные как ключи, а в массивах ключи могут быть только числами. |
Автор: zsftp 6.4.2008, 09:56 |
А каким образом делать привязку к ip адресам? |
Автор: shine 6.4.2008, 10:31 | ||
Да точно так же. Добавьте еще одну пару ключ+значение. Ключем будет 'ipsrc' а значением какой-нибудь IP из вашей таблицы. Так можно расширять этот хэш сколько вам будет нужно. Общий смысл в том, что каждая строка в таблице будет соответствовать элементу массива, а каждое значение в этой строке будет хранится в ячейке хэша с ключем таким же, как и название столбца в таблице. |
Автор: popolzen 7.4.2008, 04:47 | ||
Можешь попробовать сделать таким образом:
На выходе получаешь хэш, в котором ключами будет массив (ipsrc, ipdst, psrc, pdst), а значениями суммарный объем трафика. |