如何在树枝中正确循环三维数组?

时间:2013-11-29 06:27:54

标签: php loops multidimensional-array twig

我有一个像这样的阵列设置;我似乎无法用树枝循环遍历这些值:

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

我上面的twig模板代码一直出现Array to string conversion错误。

3 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分: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将打印数组中的数据:

参考dump

答案 2 :(得分:0)

我用它在树枝上打印多维数组,希望它能起作用。

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