2013-11-29 32 views
4

我有一個像這樣的陣列設置;我不能通過價值觀似乎與循環樹枝:如何在樹枝中正確地循環三維數組?

array (size=1) 
    'hash' => 
    array (size=7) 
     0 => 
     array (size=4) 
      'key1' => "val" 
      'key2' => "val" 
      'key3' => "val" 
      'key4' => "val" 
     1 => 
     array (size=4) 
      'key1' => "val" 
      'key2' => "val" 
      'key3' => "val" 
      'key4' => "val" 
     ... 

我使用(在第n次迭代)的模板代碼:

{% for i in hash %} 
    {% for j in i %} 
     <td>{{ j.key1 }}</td> 
     <td>{{ j.key2 }}</td> 
     <td>{{ j.key3 }}</td> 
     <td>{{ j.key4 }}</td> 
    {% endfor %} 
    {% endfor %} 

我不斷收到Array to string conversion錯誤上述樹枝模板碼。

回答

7

隨着vijay4vijju的幫助和他提到dump我能遍歷陣列。需要

只有一個循環:

{% for key,val in hash %} 
    <tr> 
    <td>{{ val.key1 }}</td> 
    <td>{{ val.key2 }}</td> 
    <td>{{ val.key3 }}</td> 
    <td>{{ val.key4 }}</td> 
    </tr> 
{% endfor %} 

我會選擇他的答案,但在技術上並沒有答案,轉儲只是到dump手冊的參考。

爲了能夠在樹枝調試我用:

$twig = new Twig_Environment($loader, array(
    'debug' => true, 
)); 
$twig->addExtension(new Twig_Extension_Debug()); 

要解決這個問題,我用:

{% for key,val in hash %} 
    <pre>{{ dump(val) }}</pre> 
    <tr> 
    <td>{{ val.key1 }}</td> 
    <td>{{ val.key2 }}</td> 
    <td>{{ val.key3 }}</td> 
    <td>{{ val.key4 }}</td> 
    </tr> 
{% endfor %} 
2

試試這個。我不知道

{% for key,value in hash %} 
      {% for key1,value1 in value %} 
       Value1 : {{ dump(value1) }} 
       {% for key2,value2 in value1 %} 
        Value1 : {{ value2 }} 
       {% endfor %} 
     {% endfor %} 
    {% endfor %} 

轉儲將從陣列打印數據:

參考dump

+1

編輯我的答案檢查一次。嘗試轉儲? – vijaykumar

0

我用這個打印在樹枝多維數組,希望它會奏效。

{% for item in hash %} 
    {% for firstLevelItem in item %} 
     <ul> 
      <li>{{ firstLevelItem.comments }}</li> 
     </ul> 
    {% endfor %} 
{% endfor %}