System verilog arrays

What is the difference between structure and associative array in SV?

my understanding is array is a collection of variables which are of same datatype. and structure is a collection of variables
which are of different datatype. but in associate also uses a different datatypes.

Please clarify my doubt?

In reply to Ram130625@:

All arrays are collections of variables (called elements) with identical data types. The differences between the array kinds(fixed, dynamic, queues, and associative) are how the elements get allocated and selected. Elements get selected with a numerical index with the exception of associate arrays. Associative arrays allow you to select almost any other data type as a selection index. But you must write to an individual selected element to allocate that particular element. Even if you choose a numeric type for an index, you still need to write to each individual numeric index to allocate that element. For this reason, associative arrays are sometimes called sparse arrays since you cannot allocate a range of elements as one operation.

You are correct that an unpacked structure is a collection of variables with potentially different data types. But they are selected with a named identifier and not an index expression.