drflkphi675447 2013-11-29 06:27
浏览 8
已采纳

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

I have an array setup like so; and I cant seem to loop through the values with 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"
      ...

The template code I'm using (in its nth iteration):

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

I keep getting Array to string conversion errors with the above twig template code.

  • 写回答

3条回答 默认 最新

  • dongpiansui8755 2013-11-30 17:00
    关注

    With the help of vijay4vijju and his reference to dump I was able to loop over the array.

    Only a single loop was needed:

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

    I would have selected his answer but it technically wasn't the answer, and dump was just a reference to the dump manual.

    To enable debugging in twig I used:

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

    To troubleshoot this issue I used:

    {% 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条)

报告相同问题?