mirror of
https://github.com/hashicorp/terraform.git
synced 2026-05-21 17:58:55 -04:00
75 lines
2.2 KiB
Text
75 lines
2.2 KiB
Text
---
|
|
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.
|