2016-03-21 2 views
1

может кто-нибудь сказать мне, почему это не работает? i не распознается как (1, 2 или 3), но как i:Twig for loop over array

{% set test = '' %} 
    {% for i in range(0,2) %} 
    {% set test = test ~ ' ' ~ myArray.i %} 
    {% endfor %} 

Вот мой массив:

array:3 [▼ 
    0 => "test " 
    1 => "test " 
    2 => "test " 
] 
+0

Какова структура 'myArray'? Кажется, что его ключи не содержат индексов от 0 до 2. – hasumedic

+0

Что такое вывод – darkomen

+1

Попробуйте '' myArray [i] ''. – eRIZ

ответ

0

Чтобы получить «i-го элемента массива вам нужно используйте скобки, такие как myArray[i].

Также в качестве улучшения вы можете просто использовать for i in 0..2 в веточке вместо диапазона (http://twig.sensiolabs.org/doc/templates.html#other-operators).

+0

Да, спасибо, но у меня вопрос, в моем цикле, если я делаю a: {% set test = test | replace ({i: myArray [i]})%} i -> это число в строке ... Я понял, что он не заменен, но если вы пишите {% set test = test | replace ({2: myArray [i]})%}, например, чтобы проверить его работу. –

+2

Попробуйте: '' {(i): myArray [i]} ''. – eRIZ

+0

Большое вам спасибо, я не нашел, что где-нибудь в документе :( –