#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 %}