# 14.17. Array Functions and Operators

## Subscript Operator: []

The [] operator is used to access an element of an array and is indexed starting from one:

```SELECT my_array AS first_element
```

## Concatenation Operator: ||

The || operator is used to concatenate an array with an array or an element of the same type:

```SELECT ARRAY  || ARRAY ; => [1, 2]
SELECT ARRAY  || 2; => [1, 2]
SELECT 2 || ARRAY ; => [2, 1]
```

## Array Functions

array_min(x) → x

Returns the minimum value of input array.

array_max(x) → x

Returns the maximum value of input array.

element_at(array<E>, index) → E

Returns element of array at given index. If index >= 0, this function provides the same functionality as the SQL-standard subscript operator ([]). If index < 0, element_at accesses elements from the last to the first.

array_distinct(x) → array

Remove duplicate values from the array x.

array_intersect(x, y) → array

Returns an array of the elements in the intersection of x and y, without duplicates.

array_position(x, element) → bigint

Returns the position of the first occurrence of the element in array x (or 0 if not found).

array_sort(x) → array

Sorts and returns the array x. The elements of x must be orderable.

cardinality(x) → bigint

Returns the cardinality (size) of the array x.

concat(x, y) → array

Concatenates the arrays x and y. This function provides the same functionality as the SQL-standard concatenation operator (||).

contains(x, element) → boolean

Returns true if the array x contains the element.

array_join(x, delimiter, null_replacement) → varchar

Concatenates the elements of the given array using the delimiter and an optional string to replace nulls.

array_remove(x, element) → array

Remove all elements that equal element from array x.

slice(x, start, length) → array

Subsets array x starting from index start (or starting from the end if start is negative) with a length of length.