Arrays are useful when you know the size of the collection in advance, and you need to be able to iterate over the elements in a specific order.
Mappings are useful when you don't know the size of the collection in advance, and you need to be able to quickly lookup values.
Here are a few specific scenarios where you might choose to use one over the other:
1. Use an array when you need to store a collection of items that need to be accessed by index.
2. Use a mapping when you need to associate unique IDs with certain data, such as mapping account addresses to their balance or mapping item IDs to their name and price.
3. If you have a large data set and don't need to access all of it frequently mapping would be more memory efficient as it only stores the key-value pair you need, while in an array, it stores the whole set even if you access only a small part of it.
4. When you need to iterate over the collection, use an array, as mappings don't support iteration over their keys or values.
Keep in mind, arrays are more suited for small and predictable data sets, while mappings are better for large and unpredictable data sets.