| --- |
| 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. |