Traditionally, an array is a tabular structure used to hold data, much like a spreadsheet table with clearly defined limits and dimensions.
In ColdFusion, you typically use arrays to temporarily store data. For example, if your site lets users order goods online, you can store their shopping cart contents in an array. This lets you make changes easily without committing the information, which the user can change before completing the transaction, to a database.
Subsequent discussions of ColdFusion arrays are based on the following terms:
Array dimension: The relative complexity of the array structure.
Index: The position of an element in a dimension, ordinarily surrounded by square brackets: my1Darray[1], my2Darray[1][1], my3Darray[1][1][1].
Array element: Data stored at an array index.
The simplest array is a one-dimensional array, similar to a row in a table. A one-dimensional array has a name (the variable name) and a numerical index. The index number references a single entry, or cell, in the array, as the following figure shows:
Thus, the following statement sets the value of the fifth entry in the one-dimensional array MyArray to "Robert":
<cfset MyArray[5] = "Robert">
A basic two-dimensional (2D) array is like a simple table. A three-dimensional (3D) array is like a cube of data, and so on. ColdFusion lets you directly create arrays with up to three dimensions. You can use multiple statements to create arrays with more than three dimensions.
The syntax my2darray[1][3]="Paul" is the same as saying "My2dArray is a two-dimensional array and the value of the array element index [1][3] is 'Paul'".
ColdFusion arrays differ from traditional arrays, because they are dynamic. For example, in a conventional array, array size is constant and symmetrical, whereas in a ColdFusion array, you can have rows of differing lengths based on the data that is added or removed.
The following figures show the differences between traditional arrays and ColdFusion arrays using 2D arrays. The differences between traditional and ColdFusion 3D arrays are similar, but much harder to show on a page.
A conventional 2D array is like a fixed-size table made up of individual cells, as the following figure shows:
The following figure represents a ColdFusion 2D array:
A ColdFusion 2D array is actually a one-dimensional array that contains a series of additional 1D arrays. Each of the arrays that make up a row can expand and contract independently of any other column. Similarly, a ColdFusion 3D array is essentially three nested sets of 1D arrays.
Dynamic arrays expand to accept data that you add to them and contract as you remove data from them.