AoH is better, probably, because you can't easily see throughout your code whether you should be querying the 2nd or the 4th slot in the array to do this-or-that ... and every statement is now completely dependent on the order that you initially chose, and there WILL be a bug in there somewhere. But if the array-element is a hash, the array-element is now self-describing. Each slot is named.