Accessing array values using array key from Twig

Joseph Woodward picture Joseph Woodward · Nov 9, 2011 · Viewed 76.8k times · Source

Does anyone know how (of if it's even possible!) to do this in Twig? I can't see anything in the documentation as to whether it's possible.

The PHP array is structured as below:

$data['data']['a']['title'] = 'Title 1';
$data['data']['a']['title'] = 'Title 2';
$data['data']['b']['title'] = 'Title 3';

Twig template code below:

{% for letter in 'a'..'z' %}
    {{ letter }}
    <ul>
        {% for key, item1 in data %}
            {% for item2 in item1 %}

                <li>{{ item2[key].title }}</li>

            {% endfor %}
        {% endfor %}                
    </ul>
{% endfor %}

Edit: After further investigation, it appears the attribute (see http://twig.sensiolabs.org/doc/functions/attribute.html) function should do the job but I am unsure as to how to use it in these circumstances.

Many thanks

Answer

Guillaume Poussel picture Guillaume Poussel · Mar 3, 2012

Have you just tried this:

attribute(item2, key).title