About arrays

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.

Basic array concepts

The following terms will help you understand subsequent discussions of ColdFusion arrays:

The simplest array is a one-dimensional array, similar 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:

A one-dimensional array showing the index for each entry

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"'.

About ColdFusion arrays

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 has been 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:

A two-dimensional array showing the index for each entry

The following figure represents a ColdFusion 2D array:

A ColdFusion two-dimensional array contains a series of one-dimensional arrays.

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 you add to them and contract as you remove data from them.

Comments