Twig循环和构建哈希

时间:2015-11-13 17:40:09

标签: symfony hash twig

我有twig语法和合并功能的问题...我有多个对象有2个字段类别和价格。

我需要创建一个数组或哈希(我猜哈希更容易,但我会尝试两者),每个类别的价格总和。

所以我尝试了很多代码,而我的最后一个代码是:

{% set test = [ {'category': 'description', 'price':  '1'}, { 'category': 'abc', 'price': '2'}, { 'category':'description', 'price': '3'} ] %}

{% set listCategory={} %}

{% for line in test %}

    {% set new_category = { 'category': line.category, 'price': line.price } %}

    {% if loop.first %}
        {% set listCategory = listCategory|merge([new_category]) %}
    {% else %}
        {% set flag = false %}

        {% for category in listCategory %}
            {% if line['category'] == new_category['category'] %}

                {% set tmp = line['price'] + new_category['price'] %}
                {# i try it too#}
                {% set category = category|merge([tmp]) %}

                {# or i try this#}
                {% set category = category|merge({ (category.price) : category.price + new_category.price }) %}

                {{ dump(listCategory) }}

            {% endif %}
        {% endfor %}
    {% endif %}

{% endfor %}

我尝试了3个小时,我不知道我在哪里犯了错误。 当我检查我的阵列时,我会测试密钥的名称'存在

如果是,我想将元素的价格添加到哈希价格

如果不是,我想用key =' name'

在哈希中添加一个新数组

有人有想法吗?这是你的阅读。

1 个答案:

答案 0 :(得分:3)

我认为你正在寻找类似的东西:

{% set test = [ {'category': 'description', 'price':  1}, { 'category': 'abc', 'price': 2}, { 'category':'description', 'price': 3} ] %}

{% set listCategory={} %}

{% for line in test %}

    {% set key = line.category %}

    {% if listCategory[key] is defined %}

        {# notice here that the key is in brackets () because otherwise it will be interpreted as the string "key" %}
        {% set listCategory = listCategory|merge({(key):listCategory[line.category]+line.price}) %}

    {% else %}

        {% set listCategory = listCategory|merge({(key):line.price}) %}

    {% endif %}

    {{ key }}: {{ listCategory[key] }}

{% endfor %}