Help with array_unique function

Hi. I’m a relative newbie putting together a simple theme for personal use.

I have a loop which gets all the years of pages:

{% for page in pages.children.visible.order('date', 'desc') %}
	{% set year = page.date|date('Y') %}
{% endfor %}

but I’m not sure how to get just the unique years from this array. I’m sure I need to use the array_unique Twig function - but I’m not sure exactly how.

Could someone help me out please?

Thank you.

@simfin, Have a look at the docs: Twig Filters | Grav Documentation

Thanks. I’d seen the array_unique entry in the docs - but I can’t see how to use it.

Could anyone give me a simple example please?

Thank you.

Hi, @simfin, based on your example

{% set years = [] %}
{% for page in pages.children.visible.order('date', 'desc') %}
	{% set years = years|merge([page.date|date('Y')])|array_unique %}
{% endfor %}
{# test #}
{% for year in years %}
	<h1>{{ year|e }}</h1>
{% endfor %}

you should probably explain what you’re trying to achieve, and note that pages.children won’t get all pages, but the top level pages.

That’s great for now - thanks for your help.