1

I have a twodimensional array (if I counted it corectlly), called $all_items. It contains several arrays one for each category of items and each of this arrays contains an item - with category, description and so on. This is my code so far:

    {% for all_i in all_items %}
        <table class="table table-condensed">
        {% for i in all_i %}
            <tr>
                <td>{{ loop.index }}. </td>
                <td>{{ i.description }}</td>
                <td>{{ i.price }}</td>
            </tr>
        {% endfor %}
        </table>
    {% endfor %}

What I want is to display the name of each category and then the items in this category. I'm able to call only {{ i.category }}, but then it would be displayed for each item, not only once.

I was wondering if there is a way to do something like that below and what is the right syntax for this.

    {% for all_i in all_items %}
        <table class="table table-condensed">
        {{ all_i[i].category }}
        {% for i in all_i %}
            <tr>
                <td>{{ loop.index }}. </td>
                <td>{{ i.description }}</td>
                <td>{{ i.price }}</td>
            </tr>
        {% endfor %}
        i++;
        </table>
    {% endfor %}

The value of i is set to be 0 from the Controller and is passed to the template.

The error I get is Key "0" for array with keys "" does not exist

This line works fine in the Controller:

$i = $all_items[0][0]->getCategory();

Could you please help me fix this?


UPDATE

%array% [[!!php/object:O:29:"EM\ExpensesBundle\Entity\Item":7:{s:5:"*id";i:8;s:14:"*description";s:8:"Вода";s:8:"*price";s:4:"5.00";s:7:"*date";O:8:"DateTime":3:{s:4:"date";s:19:"2007-01-01 00:00:00";s:13:"timezone_type";i:3;s:8:"timezone";s:13:"Europe/Berlin";}s:8:"*notes";N;s:11:"*category";O:48:"Proxies\__CG__\EM\ExpensesBundle\Entity\Category":4:{s:17:"__isInitialized__";b:1;s:5:"*id";i:1;s:7:"*name";s:28:"Храна и напитки";s:8:"*items";O:33:"Doctrine\ORM\PersistentCollection":2:{s:39:"Doctrine\ORM\PersistentCollectioncoll";O:43:"Doctrine\Common\Collections\ArrayCollection":1:{s:54:"Doctrine\Common\Collections\ArrayCollection_elements";a:0:{}}s:46:"Doctrine\ORM\PersistentCollectioninitialized";b:0;}}s:8:"*month";O:45:"Proxies\__CG__\EM\ExpensesBundle\Entity\Month":7:{s:17:"__isInitialized__";b:0;s:5:"*id";N;s:7:"*name";N;s:9:"*budget";N;s:8:"*notes";N;s:10:"*spended";N;s:8:"*saved";N;}}, !!php/object:O:29:"EM\ExpensesBundle\Entity\Item":7:{s:5:"*id";i:9;s:14:"*description";s:14:

This is a part of what I get when I write

`{{all_items | yaml_dump }}

but I still can't figure out what indexes to use. Honestly, I don't know how to understand this.

2
  • 1
    You can use dump or var_dump twig filter (dependent on version of Twig you use), and see what indexes are inside array. May be, you are really referencing to not existing element, because syntax seems to be correct. Check manual Commented Oct 29, 2012 at 7:35
  • Thank you! Only yaml_dump worked, but I can't figure out what exactly it means. dump.. took it too long :S Commented Oct 29, 2012 at 7:54

1 Answer 1

1

I'm assuming that all of the items in the all_i array have the same category? If so, and the array is not a named key value array then you could just do something like the below to get the first category name from the sub array.

{% for all_i in all_items %}
    {% if all_i|length > 0 %}
        <h3>{{ all_i[0].category }}</h3>
        <table class="table table-condensed">
            {% for i in all_i %}
                <tr>
                    <td>{{ loop.index }}. </td>
                    <td>{{ i.description }}</td>
                    <td>{{ i.price }}</td>
                </tr>
            {% endfor %}
        </table>
    {% endif %}
{% endfor %}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.