slice
Новые возможности версии 1.6: Фильтр slice был добавлен в Twig 1.6.
Фильтр slice извлекает срез последовательности, отображения или строки:
{% for i in [1, 2, 3, 4, 5]|slice(1, 2) %}
{# will iterate over 2 and 3 #}
{% endfor %}
{{ '12345'|slice(1, 2) }}
{# outputs 23 #}
Вы можете использовать любое допустимое выражение как для начала, так и для длины:
{% for i in [1, 2, 3, 4, 5]|slice(start, length) %}
{# ... #}
{% endfor %}
В качестве синтаксического сахара также можно использовать запись []:
{% for i in [1, 2, 3, 4, 5][start:length] %}
{# ... #}
{% endfor %}
{{ '12345'[1:2] }}{# will display "23" #}
{# you can omit the first argument -- which is the same as 0 #}
{{ '12345'[:2] }}{# will display "12" #}
{# you can omit the last argument -- which will select everything till the end #}
{{ '12345'[2:] }}{# will display "345" #}
Фильтр slice работает как функция array_slice PHP для массивов и mb_substr для строк со значением по умолчанию substr.
Если значение start является неотрицательным, последовательность начнётся с этого значения в переменной. Если start отрицательно, последовательность начнётся на этом расстоянии от конца переменной.
Если задана длина и она положительна, то последовательность будет содержать не более указанного количества элементов. Если переменная короче указанной длины, то будут присутствовать только доступные элементы переменной. Если длина отрицательна, то последовательность закончится на этом расстоянии от конца переменной. Если она опущена, то последовательность будет содержать все элементы от смещения до конца переменной.
Примечание
Он также работает с объектами, реализующими интерфейс Traversable.
Аргументы
-
start: Начало среза -
length: Размер среза -
preserve_keys: Сохранять ключи или нет (когда входной параметр — массив)
© 2009–2018 by the Twig Team
Licensed under the three clause BSD license.
The Twig logo is © 2010–2020 Symfony
https://twig.symfony.com/doc/1.x/filters/slice.html