Reputation: 12740
I'm trying to create an array and store values in it within for loop but failed so far. How can I do it with Twig?
I've read these but being new in Twig makes it hard to convert into my case.
PLAIN PHP LOGIC IS THIS:
foreach ($array as &$value)
{
$new_array[] = $value;
}
foreach ($new_array as &$v)
{
echo $v;
}
WHAT I'VE TRIED WITH TWIG:
{% for value in array %}
{% set new_array = new_array|merge([value]) %}
{% endfor %}
{% for v in new_array %}
{{ v }}
{% endfor %}
Upvotes: 10
Views: 25138
Reputation: 1846
I have other solution for arrays in loop. This solution is letting you to make arrays like PHP:
$my_array[] = array('key_1' => $value1, 'key_2' => $value_2);
in this case:
{% set cars_details = [] %}
{% for car in cars %}
<!-- This is the line of code that does the magic -->
{% set car = car|merge({(loop.index0) : {'color': car.color, 'year': car.year} }) %}
{% endfor %}
{{ car|dump }}
Upvotes: 1
Reputation: 12740
Solved by following Vision's suggestion:
{% set brands = [] %}
{% for car in cars %}
{% if car not in brands %}
{% set brands = brands|merge([car]) %}
{% endif %}
{% endfor %}
{% for brand in brands %}
{{ brand }}
{% endfor %}
Also I'll take bartek's comment into consideration next time. This was one off.
Upvotes: 27