Do you want 'easy' or do you want 'fast'?
If you want 'fast', consider using direct port manipulation:http://www.arduino.cc/en/Reference/PortManipulation
I would say that this is an 'intermediate' way of using the programming language.
It is made slightly more complex by the fact that as standard on a 328-based Arduino, there isn't a full 8 bits available on a single port. Hence, you have to OR two port reads, each of which is ANDed with its own bitmask.
If you don't understand it, then make sure you only READ the PIN registers for the ports you are using. Don't fiddle with anything else!
For instance, say your inputs are on Arduino pins 2-9. These translate into PIND bits 2-7 and PINB bits 0 and 1.
Hence, if you say byte temp=PIND; that will put six bits of PORTD that you do want into temp. Unfortunately, it will also put two bits you don't want in there as well. Hence, you need to blank them off. Thus temp &= B11111100; now puts what you do want back into temp.
Now do the same for PINB. byte temp1=PINB; temp1 &= B00000011; now temp 1 contains the other two bits you're interested in.
Finally, temp |= temp1; puts the full byte into temp.
Written compactly, this becomes:
byte temp = (PIND & 0xFC) | (PINB & 0x03);
(Edited to correct stupid mistake)