## 9.14. Array Functions and Operators

Table 9.35, “array Operators” shows the operators available for `array` types.

Table 9.35. `array` Operators

Operator | Description | Example | Result
--- | --- | --- | ---
`=` | equal | `ARRAY[1.1,2.1,3.1]::int[] = ARRAY[1,2,3]` | `t`
`<>` | not equal | `ARRAY[1,2,3] <> ARRAY[1,2,4]` | `t`
`<` | less than | `ARRAY[1,2,3] < ARRAY[1,2,4]` | `t`
`>` | greater than | `ARRAY[1,4,3] > ARRAY[1,2,4]` | `t`
`<=` | less than or equal | `ARRAY[1,2,3] <= ARRAY[1,2,3]` | `t`
`>=` | greater than or equal | `ARRAY[1,4,3] >= ARRAY[1,4,3]` | `t`
`||` | array-to-array concatenation | `ARRAY[1,2,3] || ARRAY[4,5,6]` | `{1,2,3,4,5,6}`
`||` | array-to-array concatenation | `ARRAY[1,2,3] || ARRAY[[4,5,6],[7,8,9]]` | `{{1,2,3},{4,5,6},{7,8,9}}`
`||` | element-to-array concatenation | `3 || ARRAY[4,5,6]` | `{3,4,5,6}`
`||` | array-to-element concatenation | `ARRAY[4,5,6] || 7` | `{4,5,6,7}`

See Section 8.10, “Arrays” for more details about array operator behavior.

Table 9.36, “array Functions” shows the functions available for use with array types. See Section 8.10, “Arrays” for more discussion and examples for the use of these functions.

Table 9.36. `array` Functions

Function | Return Type | Description | Example | Result
--- | --- | --- | --- | ---
``array_cat` (`anyarray`, `anyarray`)` | `anyarray` | concatenate two arrays, returning `NULL` for `NULL` inputs | `array_cat(ARRAY[1,2,3], ARRAY[4,5])` | `{1,2,3,4,5}`
``array_append` (`anyarray`, `anyelement`)` | `anyarray` | append an element to the end of an array, returning `NULL` for `NULL` inputs | `array_append(ARRAY[1,2], 3)` | `{1,2,3}`
``array_prepend` (`anyelement`, `anyarray`)` | `anyarray` | append an element to the beginning of an array, returning `NULL` for `NULL` inputs | `array_prepend(1, ARRAY[2,3])` | `{1,2,3}`
``array_dims` (`anyarray`)` | `text` | returns a text representation of array dimension lower and upper bounds, generating an ERROR for `NULL` inputs | `array_dims(array[[1,2,3], [4,5,6]])` | `[1:2][1:3]`
``array_lower` (`anyarray`, `integer`)` | `integer` | returns lower bound of the requested array dimension, returning `NULL` for `NULL` inputs | `array_lower(array_prepend(0, ARRAY[1,2,3]), 1)` | `0`
``array_upper` (`anyarray`, `integer`)` | `integer` | returns upper bound of the requested array dimension, returning `NULL` for `NULL` inputs | `array_upper(ARRAY[1,2,3,4], 1)` | `4`
``array_to_string` (`anyarray`, `text`)` | `text` | concatenates array elements using provided delimiter, returning `NULL` for `NULL` inputs | `array_to_string(array[1, 2, 3], '~^~')` | `1~^~2~^~3`
``string_to_array` (`text`, `text`)` | `text[]` | splits string into array elements using provided delimiter, returning `NULL` for `NULL` inputs | `string_to_array( 'xx~^~yy~^~zz', '~^~')` | `{xx,yy,zz}`