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/2.x/filters/slice.html