reduce
The reduce
filter iteratively reduces a sequence or a mapping to a single
value using an arrow function, so as to reduce it to a single value. The arrow
function receives the return value of the previous iteration and the current
value and key of the sequence or mapping:
1 2 3 4
{% set numbers = [1, 2, 3] %}
{{ numbers|reduce((carry, v, k) => carry + v * k) }}
{# output 8 #}
The reduce
filter takes an initial
value as a second argument:
1 2
{{ numbers|reduce((carry, v, k) => carry + v * k, 10) }}
{# output 18 #}
Note that the arrow function has access to the current context.
Arguments
arrow
: The arrow functioninitial
: The initial value
Note
Internally, Twig uses the PHP array_reduce function.