need help with array

MorganS:
Now, returning to your actual project, remember that the Arduino is almost infinitely fast. It will be able to take several readings of the input in a millionth of a second.

Not using the digitalRead() command, or at least I haven't. It takes about 5 cycles, port read takes 1.

But once you read the bit you gotta do something with it or it's a wasted read. The fastest pin-check loop with counter I've been able to do using digitalRead() runs in just over 1 microsecond.