按字母组对名称进行分组 - Twig、ACF

Group names by group of letters - Twig, ACF

我正在为 Wordpress 使用 ACF 和 Timber(树枝)。

我正在尝试将字母组中的名称分组。例如:

**A-E**
Arno
Adrieno
Arvay
Emily
Etienne

**F-J**
Fanny
Franck
Fergy

**K-O**

etc..

**0-9**

我成功地按字母顺序对 ACF 转发器字段进行了分类。

$index_list = get_field('index_list_repeater');

foreach ($index_list as $key => $row) {
    $the_name[$key] = $row;
}

array_multisort($the_name, SORT_ASC, $index_list);

$context['index_list'] = $index_list;

但是如何按字母对名称进行分组?如何使用 Twig 添加范围(A-E、F-J 等)?

{% for item in index_list|range(A,E) %}
     <p>{{ item.index_name }}</p>                           
{% endfor %}

这很简单,你只需要经历两个循环。例如 A-L 将如下所示:

{% for letter in range('a', 'l') %} 
    {% for item in index_list %}
        {% if item.index_name|first|lower == letter %}
            {{ item.index_name }}
        {% endif %}
    {% endfor %}
{% endfor %}

更新 #2:对于数字,它看起来像:

{% set index_list = [{ index_name: 'Alex'}, { index_name: 'lola' }, { index_name: '5 Master' }, { index_name: '2 Master' } ] %}

{% for letter in range(0, 9) %} 
    {% for item in index_list %}
        {% if item.index_name|first|lower == letter|lower %}
            {{ item.index_name }}
        {% endif %}
    {% endfor %}
{% endfor %}