J'utilise Twig comme moteur de gabarit et je l'aime vraiment. Cependant, je me suis retrouvé dans une situation qui doit être réalisable d'une manière plus simple que celle que j'ai trouvée.
Voici ce que j'ai maintenant:
{% 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 %}
Ce que je recherche, c'est quelque chose de plus semblable à ceci:
{% 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 %}
Y a-t-il un moyen d'accomplir cela que je n'ai pas encore vu?
Si je dois créer ma propre extension, comment puis-je accéder à myVar dans la fonction de test?
Merci de votre aide!
Juste pour effacer certaines choses ici. La réponse acceptée n'a pas le même effet que PHP in_array .
Pour faire la même chose que PHP in_array , utilisez l'expression suivante:
{% if myVar in myArray %}
Si vous voulez nier cela, vous devriez utiliser ceci:
{% if myVar not in myArray %}
un autre exemple après @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 %}
Cela devrait vous aider.
{% for user in users if user.active and user.id not 1 %}
{{ user.name }}
{% endfor %}
Plus d'infos: http://twig.sensiolabs.org/doc/tags/for.html
Essaye ça
{% if var in ['foo', 'bar', 'beer'] %}
...
{% endif %}