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

Posted

技术标签:

【中文标题】如何在树枝中正确循环三维数组?【英文标题】:How to properly loop three dimensional array in twig? 【发布时间】:2013-12-15 06:57:49 【问题描述】:

我有一个这样的数组设置;而且我似乎无法用树枝遍历这些值:

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 错误。

【问题讨论】:

【参考方案1】:

在 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 只是对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 将打印数组中的数据:

参考dump

【讨论】:

编辑了我的答案检查一次。尝试转储?【参考方案3】:

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

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

【讨论】:

以上是关于如何在树枝中正确循环三维数组?的主要内容,如果未能解决你的问题,请参考以下文章

关于三维数组转换2维数组的问题

如何在keras中将三维数组转换为五维数组[重复]

*三维数组的初始化及遍历三个for循环

laravel5.4+vue.jslaravel 循环三维数组,解决:htmlentities() expects parameter 1 to be string, array given(示例(代

如何在C++中使用动态三维数组

2D 数组到 3D 数组的数量,扩展第三维