2014-06-10 5 views
1

의 배열을 통해 반복하는 것은 나뭇 가지와 같은 구조체에 루프 어떤 방법이 :나뭇 가지 : 만약 내가 궁금 객체

{% 
    set languages = [ 
    {"english": "en"}, 
    {"spanish": "es"}, 
    {"italian": "it"}, 
    {"german": "de"}, 
    {"french": "fr"}, 
    {"portuguese": "pt"}, 
    ] 
%} 

{% for value in languages %} 
    Language: {{value.??}} - Locale: {{value.??}} 
{% endfor %} 

나는 "키 값"쌍의 객체를 분할하고 싶지 않아요 단지 이것을 달성하기 위해 어떤 방법 으로든 ... 속성을 가지려면?

{% for value in languages|keys %} 
    Language: {{ languages[value]|keys|first }} - Locale: {{ languages[value]|first }} 
{% endfor %} 

답변

3

당신은 루프 수있는여 : 나는 아주 더러운하지만, 작업 솔루션을

{% 
    set languages = { 
    "english": "en", 
    "spanish": "es", 
    "italian": "it", 
    "german": "de", 
    "french": "fr", 
    "portuguese": "pt" 
    } 
%} 
+0

Nice! 그러나 오버 헤드를 피하기 위해 구조체를 간단한 사전으로 변경했습니다. 덕분에 damien –

+0

downvoter가 -1을 설명 할 수 있습니까? 이것은 깨끗한 솔루션이며, Twig에서 완벽하게 유효합니다. –

1

: 간단한 키 값 루프를 사용하여 다음과 같이 내가 구조체를 수정 한편

같은 키/값 쌍을 사용하는 객체도 마찬가지입니다.

{% 
    set languages = [ 
    {"english": "en"}, 
    {"spanish": "es"}, 
    {"italian": "it"}, 
    {"german": "de"}, 
    {"french": "fr"}, 
    {"portuguese": "pt"}, 
    ] 
%} 

{% for value in languages %} 
    {% for k, v in value %} 
    Language: {{k}} - Locale: {{v}} <br /> 
    {% endfor %} 
{% endfor %} 

{# output: 
    Language: english - Locale: en 
    Language: spanish - Locale: es 
    Language: italian - Locale: it 
    Language: german - Locale: de 
    Language: french - Locale: fr 
    Language: portuguese - Locale: pt 
#} 
+0

더러운 트릭이긴하지만 더 좋은 해결책이 있습니다. :) –

+0

그래, 부끄러워 내가 이런 식으로 게시했습니다 : < – bartek

+0

아하하, 그냥하지 말고 : 때때로 quircks 하루의 끝에 도착하는 데 필요합니다. 다행히도 내 두뇌가 다시 일하고있어 더 나은 솔루션으로 나왔다. :) –