Twig цикл в ассоциированном массиве

132
14 июня 2019, 05:10

У меня есть массив такого вида:

Array (
[data] => Array (
    [0] => tratata
    [1] => blabla
)
[data_key] => Array (
    [0] => the first key
    [1] =>  the second one
)
)

И я попыталась отобразить его вот так:

{% for key, value in L10_DATA %}
<tr>
    <th>
        {{ value.data_key }}
    </th>
    <td>
        {{ value.data }}
    </td>
</tr>
{% endfor %}

Но этот код не работает :c Помогите, пожалуйста

Answer 1

Вот рабочий пример

{% set data = ['заголовок 1', 'заголовок 2'] %}
{% set data2 = ['значение 1', 'значение 2'] %}
{% for key, value in data %}
<tr>
    <th>
       {{ value }}
    </th>
    <td>
       {{ data2[key] }}
    <td>
</tr>
{% endfor %}

Цикл for работает таким образом, что в key, и value он передает соответствующие значения.

key - ключ массива текущей итерации

value - значение текущей итерации

Если у вас ключи массивов одинаковые, то в моем примере вы можете посмотреть как правильно вывести данные

Answer 2

Можно попробовать немного иначе, у вас же элементом массива явялется массив, я вижу тэги <tr>, <th> и <td>, а значит это таблица, попробуйте так:

{% set data = [
    {'data': ['tratata', 'blabla']},
    {'data_key': ['the first key', 'the second one']}
] %}
<table>
    <tr>
    {% for index in 0..data|length-1 %}
        {% for key, values in data[index] %}
            {% if key == 'data_key' %}
                {% for value in values %}
                    <th>{{ value }}</th>
                {% endfor %}
            {% endif %}
        {% endfor %}
    {% endfor %}
    </tr>
{% for index in 0..data|length-1 %}
    {% for key, values in data[index] %}
        {% if key == 'data' %}
        <tr>
            {% for value in values %}
                <td>{{ value }}</td>
            {% endfor %}
        </tr>
        {% endif %}
    {% endfor %}
{% endfor %}
</table>

Тогда на выходе получите вот такую разметку:

<table> 
  <tr> 
    <th>the first key</th> 
    <th>the second one</th> 
  </tr> 
  <tr> 
    <td>tratata</td> 
    <td>blabla</td> 
  </tr> 
</table>

READ ALSO
Opencart 2.3 Ocmod заменяет строки

Opencart 2.3 Ocmod заменяет строки

Почему-то неправильно отрабатывает ocmod в opencart 23

147
URL работает неправильно

URL работает неправильно

Все что я понял это проблема в Vituemart 3В настройках virtuemart я включал обработку 404 ошибки

123
Обновление корзины при отправке письма

Обновление корзины при отправке письма

Подскажите пожалуйста, как после отправки письма, сделать сброс корзины и мини-корзины, а также очистить поля формыПробовал очищать localStorage...

130