To make your game more extensible (allowing more/less users or more/less cards in a players hand) it would be better to give each card it's own stats. However, this can still be done with an array if you like. Simply put a card object and it's associated array (in this case it would be a 5x1x1 array) in a container. Using the container, each time you spawn a card, it's associated array is created and each time you reference a card, you also reference it's array. If you prefer working with arrays as opposed to instance variables this may be the way to go.
Personally, I prefer to use named instance variables because it helps me keep track of what each variable is doing. Referencing a position of an array doesn't really tell me anything about what information I am accessing. If you need to make a change a year from now, will you still know exactly what each array position represents? What if you get a team to help you and want one of them to make the change. How easy will it be for someone else to figure out what the array is doing? Even if you comment it really well, it will probably still take longer to change the array based objects than one with named instance variables.