Распечатка массива в twig с использованием цикла for

#php #arrays #for-loop #if-statement #twig

#php #массивы #for-цикл #if-оператор #twig

Вопрос:

мне нужно настроить файл .csv. У меня есть переменная, которая представляет собой либо одно значение, либо массив значений. Если это единственное значение, я хочу поместить это единственное значение в ячейку, в противном случае я хочу поместить каждое значение в массиве в ячейку.

Это мой подход, но он не выполняет итерацию по массиву. Если элемент является массивом, он просто ничего не помещает в ячейку таблицы. Нужно ли мне каким-то образом увеличивать i?

 {% if item is iterable %}

{% for i in item[0..10]%}
     *{{ item[i] }}
{% endfor %}

{% else %}
{{item}}
{% endif %}
  

Ответ №1:

Не уверен, почему вы используете {% for i in item[0..10]%} итерацию элемента? 0..10 возвращает массив в twig, что приведет к следующему «коду»

 {% for i in item[Array] %}
  

Это ничего не вернет, поскольку индекс Array не существует в массиве item .
Правильный способ итерации значения будет

 {% if item is iterable %}
    {% for i in item %}
        {{ i }}
    {% endfor %}
{% else %}
    {{item}}
{% endif %}
  

Если вы пытаетесь отобразить только 10 значений из массива, вы бы выбрали

 {% for i in item[0:10]%}
    {{ i }}
{% endfor %}
  

или

 {% for i in item|slice(0, 10) %}
    {{ i }}
{% endfor %}