# Declaration / Creation > [HTML Version](declarationcreationordered.htm) _Updated May 2022_ **\{qualifier\} DIMX \$arrayname, ordmap (varstr; varstr)** **\{qualifier\} DIMX \$arrayname, ordmap (varstr; varx)** **\{qualifier\} DIMX \$arrayname, ordmapm (varstr; varstr)** **\{qualifier\} DIMX \$arrayname, ordmapm (varstr; varx)** _\$aryname_ is the name of the ordered map. It follows the normal rules of ASB variable names except that it must begin with a \$. Also note that although _\$aryname_ is an array, and you will need to use parentheses to reference it later, e.g. \$aryname("some key") = "some value", the parentheses are omitted from the declaration. The _varstr; varstr_ and _varstr; varx_ suffixes following the data types _ordmap or ordmapm_ refer to the types of the keys and the types of the values. The only supported key type is _varstr_, meaning a variable-length, null-terminated string. The value type can also be _varstr_ or it can be _varx_, meaning a variable-length raw or unformatted blob, such as can be stored in a type X or a structure variable. The _ordmap_ variant does not allow multiple key-value pairs with the same key. (The assignment **\$m("foo") = "bar"** will replace any prior key-value pair with the key "foo".) The _ordmapm_ variant allows any number of pairs to have the same key. The ordered map grows dynamically as items are added or deleted, so there is no need to declare any sizes. **See Also** • [Element assignment and removal](elementassign-ordmap.htm.md)