slice
Фильтр 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.
Если начало является неотрицательным числом, последовательность начнётся с этого значения в переменной. Если начало отрицательное, последовательность начнётся на этом расстоянии от конца переменной.
Если длина задана и положительна, то последовательность будет содержать не более этого количества элементов. Если переменная короче длины, то будут присутствовать только доступные элементы переменной. Если длина задана и отрицательна, то последовательность остановится на этом количестве элементов от конца переменной. Если она опущена, то последовательность будет содержать все элементы от смещения до конца переменной.
Примечание
Он также работает с объектами, реализующими интерфейс 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/3.x/filters/slice.html