在Twig挑战中显示PHP数组

时间:2015-04-28 21:22:41

标签: php arrays symfony twig

我在PHP中有一个由22个元素组成的数组。我想使用TWIG在页面上呈现它。结构如下:

array(22) {
  ["Name One"]=>
  array(4) {
    [0]=>
    string(27) "2015-04-03 - 2015-04-03 (1)"
    ["number"]=>
    array(3) {
      [0]=>
      string(2) "26"
      [1]=>
      string(2) "26"
      [2]=>
      string(2) "26"
    }
    [1]=>
    string(27) "2015-04-13 - 2015-04-15 (3)"
    [2]=>
    string(27) "2015-04-27 - 2015-04-27 (1)"
  }
  ["Name Two"]=>
  array(2) {
    [0]=>
    string(27) "2015-04-07 - 2015-04-07 (1)"
    ["number"]=>
    array(1) {
      [0]=>
      string(2) "21"
    }
  }
(...)

我想在表格中呈现它。我希望键(名称一,名称二等)在一个单元格中,键“数字”和#39;在其他单元格中,其余的键(0,1,2等)也在单独的单元格中。我可以写{{value[0]}},我会得到键的值,但是数组中有不同数量的这样的键,所以我想找到列出所有键的方法。我试图这样做:

{% for key,value in workers %}
    <tr><td>{{key}}</td><td>{{value[0]}}</td><td>{{value['number']}}</td></tr>
{% endfor %}

但是&#39;数字&#39;键(错误的偏移量)。基于以上结构,我想实现这样的目标:

<tr>
  <td>Name One</td>
  <td>2015-04-03 - 2015-04-03 (1)</td>
  <td>2015-04-13 - 2015-04-15 (3)</td>
  <td>2015-04-27 - 2015-04-27 (1)</td>
  <td>26</td>
</tr>
<tr>
  <td>Name Two</td>
  <td>2015-04-07 - 2015-04-07 (1)</td>
  <td>21</td>
</tr>

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

在你的结构value['number']是一个数组,那么你应该这样做以避免错误的偏移错误:

{{value['number'][0]}}

同样正如Cerad在他的评论中所说的,还有另一个解决方案:在您的控制器中迭代您的工作人员数据(或者更好地在您的控制器调用的服务中),然后水合自定义PHP对象(DTO),这将很容易在你的视图中迭代(你将把这个dto传递给你的树枝)。