2014-05-19 2 views
0

컨트롤러에 다차원 배열이 있지만이 배열의 크기가 얼마나되는지 모릅니다. 그것은 동적으로 데이터베이스에 의해 결정됩니다, 그래서 나는 나뭇 가지에 어떤 식 으로든 넣을 수 있습니까?다차원 배열 Twig

내가 나뭇 가지에 기능 덤프를 사용하고, 그것은 표시

array(5) { 
    [0]=> int(50) 
    [1]=> int(51) 
    [2]=> int(52) 
    [51]=> array(2) { 
    [0]=> int(55) 
    [55]=> array(1) { 
     [0]=> int(56) 
    } 
    } 
    [52]=> array(2) { 
    [0]=> int(53) 
    [1]=> int(54) 
    } 
} 

답변

2

좋아,이 같은이 작업을 수행 할 수 있습니다 (당신이 당신의 배열은 또 하나의 차원, 총 2 차원이 알고있는 경우). 당신이 1 개 이상의 하위 배열을 가지고 다차원 배열이있는 경우

{% for key, item in items %} 
    {% if item is iterable %} 
     {% for sub_item in item %} 
      Do something... 
     {% endfor %} 
    {% else %} 
     Do something else... 
    {% endif %} 
{% endfor %} 

, 당신은 다른 하위 차원에 도달하는 재귀 함수를 호출해야합니다. 나뭇 가지 확장 파일에서 할 수 있습니다.

재귀 함수가 다차원 배열의 하위 항목에 도달하기 위해 자체 호출하고 있습니다. 그 배열로 뭘하고 싶은지 모르겠지만 배열에 따라 기본적인 기능을 만들려고합니다. 매크로

function recursiveTwig($array) 
{ 
    foreach($array as $key => $value){ 
     if(is_array($key)) { 
      $this->recursiveTwig($key); 
     } else { 
      //Do something with your value... 
     } 
    } 
} 

:

How to render a tree in Twig

+0

아니. twig_extension 파일에서 사용할 수 있습니다. http://symfony.com/doc/current/cookbook/templating/twig_extension.html하지만 매크로로 처리하려면 나뭇 가지 파일에 매크로를 설정하고 포함시킬 수 있습니다. –

+0

고맙습니다. 작동합니다. 매크로를 사용합니다. 더 좋은 방법이라고 생각합니다. – Prezmen