---
page_title: setintersection function reference
description: |-
  The `setintersection` function creates one set from multiple sets that contains only elements common to all input sets. Learn how to use `setintersection` in Packer templates.
---

⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
> [!IMPORTANT]  
> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com.
⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️

# `setintersection` Function

The `setintersection` function takes multiple sets and produces a single set
containing only the elements that all of the given sets have in common.
The new set is referred to as the _intersection_. 

```hcl
setintersection(sets...)
```

## Examples

```shell-session
> setintersection(["a", "b"], ["b", "c"], ["b", "d"])
[
  "b",
]
```

The given arguments are converted to sets, so the result is also a set and
the ordering of the given elements is not preserved.

## Related Functions

- [`contains`](/packer/docs/templates/hcl_templates/functions/collection/contains) tests whether a given list or set contains
  a given element value.
- [`setproduct`](/packer/docs/templates/hcl_templates/functions/collection/setproduct) computes the _Cartesian product_ of multiple
  sets.
- [`setunion`](/packer/docs/templates/hcl_templates/functions/collection/setunion) computes the _union_ of
  multiple sets.
