Mark George Mark George - 4 months ago 73
Twig Question

Multidimensional Array in Twig

I am using Twig with PHP. I have a multidimensional array setup like this:

Array
(
[Special] => Array
(
[277] => Array
(
[name] => First Item
[quantity] => 1
[price] => 0
)

[276] => Array
(
[name] => Second Item
[quantity] => 11
[price] => 0
)

[278] => Array
(
[name] => Third Item
[quantity] => 2
[price] => 0
)

)

[Technical] => Array
(
[14] => Array
(
[name] => First Item
[quantity] => 1
[price] => 1
)
)
[Books] => Array
(
[169] => Array
(
[name] => First Item
[quantity] => 2
[price] => 100
)

[361] => Array
(
[name] => Second Item
[quantity] => 1
[price] => 2
)
)
)


I need to be able to cycle through each of the keys in the first array(Special, Technical, Books) and print these as category headers. I have been able to do that using:

{% for type, items in data %}
{{ type }}
{% endfor %}


This part is working fine. What I am having trouble with, is how do I loop through the items in each category and print those? The output should be like this:

Special
- 277
- {name}, {quantity}, {price}
- 276
- {name}, {quantity}, {price}
Technical
- 14
- {name}, {quantity}, {price}
...


How can I go about outputting the data like this?

Answer

Try this:

{% for type, items in data %}
    {{ type }}

    {% for key, value in items %}
        - {{ key }}
            - {{ value.name }}, {{ value.quantity }}, {{ value.price }}
    {% endfor %}
{% endfor %}