Twig忘记了数组键

时间:2011-06-01 07:10:02

标签: php arrays symfony twig

我在Symfony2中有一个奇怪的问题。我使用以下数组:

[days] => Array
    (
        [1] => Array
            (
                [money] => 9
            )

        [2] => Array
            (
                [money] => 21
            )

        [3] => Array
            (
                [money] => 38
            )

        [4] => Array
            (
                [money] => 6
            )

        [18] => Array
            (
                [money] => 6
            )

        [19] => Array
            (
                [money] => 3
            )

        [31] => Array
            (
                [money] => 11
            )

    )

测试这个我使用了以下代码

{% for key in days %}
  {{ key }}<br>
{% endfor %}

但输出显示以下内容

0
1
2
3
4
5
6

但它看起来应该是这样的

1
2
3
4
18
19
31

看起来twig会创建一个包含新索引的新数组。有没有办法从数组中获取正确的索引?

在php中使用var_dump($days)我可以看到正确的索引,因此“问题”与树枝有关。

3 个答案:

答案 0 :(得分:15)

你也可以试试这个:

{% for key,value in users %}
    {{ key }}
{% endfor %}

或者可以查看for循环中定义的“循环”对象

http://twig.sensiolabs.org/doc/tags/for.html

答案 1 :(得分:8)

也许这个

http://www.twig-project.org/doc/templates.html

默认情况下,循环遍历序列的值。您可以使用密钥过滤器迭代密钥:

<h1>Members</h1>
<ul>
  {% for key in users|keys %}
    <li>{{ key }}</li>
  {% endfor %}
</ul>

答案 2 :(得分:5)

它与twig无关,它是使用embeddedDocuments在doctrine-mongodb中的已知缺口。 Doctrine无法处理embeddedDocuments中的键值,它会从0开始重新排序键,因此会忽略正确的键值。无论如何,谢谢你的帮助:)。