小枝:in_array或类似的可能内的if语句?
我使用Twig作为模板引擎,我非常喜欢它。 但是,现在我所面临的情况肯定比我发现的要简单得多。
我现在所拥有的是:
{% for myVar in someArray %} {% set found = 0 %} {% for id, data in someOtherArray %} {% if id == myVar %} {{ myVar }} exists within someOtherArray. {% set found = 1 %} {% endif %} {% endfor %} {% if found == 0 %} {{ myVar }} doesn't exist within someOtherArray. {% endif %} {% endfor %}
我正在寻找的是更像这样的东西:
{% for myVar in someArray %} {% if myVar is in_array(array_keys(someOtherArray)) %} {{ myVar }} exists within someOtherArray. {% else %} {{ myVar }} doesn't exist within someOtherArray. {% endif %} {% endfor %}
有没有办法做到这一点,我还没有看到呢?
如果我需要创build自己的扩展,如何在testing函数中访问myVar?
谢谢你的帮助!
你只需要改变你的第二个代码块的第二行
{% if myVar is in_array(array_keys(someOtherArray)) %}
至
{% if myVar in someOtherArray|keys %}
in是包含操作符,并键入一个返回数组键的filter。
只是为了清除这里的一些东西。 被接受的答案与PHP in_array不一样。
要像PHP in_array一样使用下面的expression式:
{% if myVar in myArray %}
如果你想否定这个,你应该使用这个:
{% if myVar not in myArray %}
@jake stayman之后的另一个例子:
{% for key, item in row.divs %} {% if (key not in [1,2,9]) %} // eliminate element 1,2,9 <li>{{ item }}</li> {% endif %} {% endfor %}
它应该帮助你。
{% for user in users if user.active and user.id not 1 %} {{ user.name }} {% endfor %}
更多信息: http : //twig.sensiolabs.org/doc/tags/for.html