Skip to content
Grav 2.0 is officially stable. Read the announcement →

Community guidelines

Please keep discussions civil and on-topic. Repeated violations may lead to a temporary ban.

Themes & Styling

Help with array_unique function

Started by Simon Simfin 3 years ago · 4 replies · 379 views
3 years ago

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:

TWIG
{% 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.

3 years ago

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.

3 years ago

Hi, @simfin, based on your example

TWIG
{% 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.

Suggested topics

Topic Participants Replies Views Activity
Themes & Styling · by Pedro M, 2 months ago
4 197 2 months ago
Themes & Styling · by Ian, 2 months ago
3 92 2 months ago
Themes & Styling · by Norbert, 2 years ago
11 454 3 months ago
Themes & Styling · by Lukáš Findeis, 3 months ago
0 47 3 months ago
Themes & Styling · by Sebadamus, 4 months ago
5 127 3 months ago