# 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*,
} ] | ***