# About Arrays

Traditionally, an array is a tabular structure used to hold data, much like a spreadsheet table with clearly defined limits and dimensions. A 2-dimensional (2D) array is like a simple table. In ColdFusion, you typically use arrays to temporarily store data. For example, if your site allows users to order goods online, their shopping cart contents can be stored in an array. This allows you to make changes easily without committing the information, which the user may change before completing the transaction, to a database.

### Conventional fixed-size 2D array

A 3-dimensional array is like a cube made up of individual cells.

ColdFusion arrays differ somewhat from traditional arrays because they are dynamic. For example, in a conventional array, array size is constant and symmetrical, whereas in a ColdFusion 2D array you can have 'columns' of differing lengths based on the data that has been added or removed.

### ColdFusion dynamic 2D array

A ColdFusion 2D array is actually a 1D array that contains a series of additional 1D arrays. Each of the arrays that make up a column can expand and contract independently of any other column.

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

- 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 in an array index.

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

Dynamic arrays expand to accept data you add to them and contract as you remove data from them.