# Arrays zip
> Supported in: Batch, Faster, Streaming
Zips a list of given arrays into a merged array of structs in which the n-th struct contains all n-th values of input arrays.
**Expression categories:** Array
## Declared arguments
* **Expressions:** A list of arrays to zip.
*List\>>*
**Output type:** *Array\*
## Examples
### Example 1: Base case
**Argument values:**
* **Expressions:** \[`a1`, `a2`]
| a1 | a2 | **Output** |
| ----- | ----- | ----- |
| \[ 1, 2, 3 ] | \[ 4, 5, 6 ] | \[ {
**a1**: 1,
**a2**: 4,
}, {
**a1**: 2,
**a2**: 5,
}, {
**a1**: 3,
**a2**: 6,
} ] |
***
### Example 2: Null case (ANSI mode on)
**Argument values:**
* **Expressions:** \[`a1`, `a2`]
| a1 | a2 | **Output** |
| ----- | ----- | ----- |
| \[ 1, 2, 3 ] | \[ 4, 5, 6 ] | \[ {
**a1**: 1,
**a2**: 4,
}, {
**a1**: 2,
**a2**: 5,
}, {
**a1**: 3,
**a2**: 6,
} ] |
| \[ 1, 2, 3 ] | *null* | *null* |
| *null* | *null* | *null* |
| \[ ] | \[ ] | \[ ] |
***
### Example 3: Null case (ANSI mode off)
**Argument values:**
* **Expressions:** \[`a1`, `a2`]
| a1 | a2 | **Output** |
| ----- | ----- | ----- |
| \[ 1, 2, 3 ] | *null* | \[ {
**a1**: 1,
**a2**: *null*,
}, {
**a1**: 2,
**a2**: *null*,
}, {
**a1**: 3,
**a2**: *null*,
} ] |
| *null* | *null* | \[ ] |
| \[ ] | \[ ] | \[ ] |
***
### Example 4: Edge case
**Description:** Longest length array is used.
**Argument values:**
* **Expressions:** \[`a1`, `a2`]
| a1 | a2 | **Output** |
| ----- | ----- | ----- |
| \[ 1, 2, 3 ] | \[ 4, 5 ] | \[ {
**a1**: 1,
**a2**: 4,
}, {
**a1**: 2,
**a2**: 5,
}, {
**a1**: 3,
**a2**: *null*,
} ] |
***