blob: 74c7de92a7bc9be8e22804d94e23d3f1d5fce26f [file] [log] [blame]
---
page_title: setintersection function reference - Functions - Configuration Language
description: |-
The setintersection function takes multiple arrays and produces a single array
containing only the elements that all of the given arrays have in common.
---
# `setintersection` function reference
This topic provides reference information about the `setintersection` function,
which computes the intersection of the specified sets.
## Introduction
The `setintersection` function takes multiple sets and produces a single set
containing only the elements that all of the given sets have in common.
In other words, `setintersection` computes the intersection of the sets.
Refer to Wikipedia's [Intersection (set
theory)](https://en.wikipedia.org/wiki/Intersection_\(set_theory\)) article
for a mathematical explanantion of set theory intersection.
## Syntax
Use the `setintersection` function with the following syntax:
```hcl
setintersection(sets...)
```
Replace `sets...` with a comma-delimited list of sets such as `["a","b"], ["a","c","g"]`. The elements of
the different sets do not have to be the same type.
The `setintersection` result is an unordered set.
## Example use cases
This example passes in sets of strings and returns a set with one element.
```hcl
> setintersection(["a", "b"], ["b", "c"], ["b", "d"])
[
"b",
]
```
This example passes in number sets of different sizes and returns a set with two elements.
```hcl
> setintersection([3,3.3,4], [4,3.3,65,99], [4.0,3.3])
toset([
3.3,
4,
])
```
This examples pass in sets of different lengths and element types.
The result is a set of two string elements.
```hcl
> setintersection(["bob","jane",3], ["jane",3,"ajax",10], ["3","jane",26,"nomad"])
toset([
"3",
"jane",
])
```
## Related Functions
* [`contains`](/terraform/language/functions/contains) tests whether a given list or set contains
a given element value.
* [`setproduct`](/terraform/language/functions/setproduct) computes the _Cartesian product_ of multiple
sets.
* [`setsubtract`](/terraform/language/functions/setsubtract) computes the _relative complement_ of two sets
* [`setunion`](/terraform/language/functions/setunion) computes the _union_ of
multiple sets.