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

Help with array_unique function

Started by Simon Simfin 3 years ago · 4 replies · 472 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 Sebadamus, 7 days ago
5 148 16 hours ago
Themes & Styling · by martynfoster735, 1 week ago
1 193 1 week ago
Themes & Styling · by Justin Young, 3 weeks ago
1 241 3 weeks ago
Themes & Styling · by Slebeig, 1 month ago
4 376 1 month ago
Themes & Styling · by Pedro M, 3 months ago
4 745 3 months ago