- Creating an Array
- Adding an Element to an Array
- Displaying a Value in an Array
- Looping over an Array
- Manipulating Array Values
- Sorting an Array
- Multidimensional Arrays
- Creating Arrays with More Than Three Dimensions
- Array Aggregate Functions
- Array Utility Functions
- Array Information Functions
3.7. Multidimensional Arrays
You want to create an array with more than one dimension.
Use ArrayNew(), passing in as a parameter the number of dimensions you require, to create a multidimensional array.
<!---Create a two dimensional aBeachBoysAlbums array---> <cfset aBeachBoysAlbums = ArrayNew(2)> <!---Build first album array, Surfin' Safari---> <cfset aBeachBoysAlbums = "Surfin' Safari"> <cfset aBeachBoysAlbums = "County Fair"> <cfset aBeachBoysAlbums = "Ten Little Indians"> <!---Build second album array, Surfin' USA---> <cfset aBeachBoysAlbums = "Surfin' USA"> <cfset aBeachBoysAlbums = "Farmer's Daughter"> <cfset aBeachBoysAlbums = "Miserlou"> <!---Build third album array, Surfer Girl---> <cfset aBeachBoysAlbums = "Surfer Girl"> <cfset aBeachBoysAlbums = "Catch a Wave"> <cfset aBeachBoysAlbums = "The Surfer Moon">
A multidimensional array is an array of arrays rather than an array of single values. Until this point in the chapter, one-dimensional arrays have been covered, and the array elements have all been simple valuesthe name of a song or a letter of the alphabet. In a multidimensional array, you use the array elements to store other arrays.
ColdFusion allows you to define up to three dimensions in an array with a call to the ArrayNew() function. ArrayNew() takes one argument1, 2, or 3depending on how many dimensions you need.
This code is an example of creating a two-dimensional array. It continues using the Beach Boys as a model and uses a two-dimensional array to store album information in order of release. For this example, you use only the first three songs from each of their first three releases.
If you want to display the values stored in the inner dimensions of an array, it is necessary first to get a handle on each element. Using cfloop is the best way to do so. Remember, you need exactly as many loops as you have dimensions in the array.