hopefully someone might be able to shed some light on this. I have a ruby test application which I'm fetching data from a database. I want to store the results into a hash based on the following principle; loop through the rows does the hash contain a key value as read from that row if it does then place the row into an array and then add it to an array of rows which might already be within the hash if the hash doesn't contain the key then create a key and add the row to an array an append it to the hash unfortunately i'm relatively new to Ruby and can't figure out how to do this. In a few simply tests I declare a variable called a = [] when I loop over the returned database rows using row, I assign row into a a += row this works but rather than the array being a length of the total number of rows, it's actually the length of all the rows multiplied by the number of columns. I guess the first problem is getting the rows into a correct array. Once this is done I should be able to say "hash, have you got a key with the value 1" - the hash might say "yes, and here is an array of rows." I'll take that array of rows and add another row to it and save back to the hash. can anyone help?