Ich benutze Twig als Template-Engine und ich liebe es wirklich. Nun bin ich jedoch in eine Situation geraten, die definitiv auf einfachere Weise erreichbar sein muss, als ich festgestellt habe.
Was ich jetzt habe, ist folgendes:
{% 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 %}
Was ich suche, ist ungefähr so:
{% 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 %}
Gibt es einen Weg, dies zu erreichen, was ich noch nicht gesehen habe?
Wie kann ich innerhalb der Testfunktion auf myVar zugreifen, wenn ich eine eigene Erweiterung erstellen muss?
Danke für Ihre Hilfe!
Nur um hier ein paar Dinge zu klären. Die Antwort, die akzeptiert wurde, stimmt nicht mit PHP in_array überein.
Um dasselbe zu tun wie PHP in_array , verwenden Sie folgenden Ausdruck:
{% if myVar in myArray %}
Wenn Sie dies negieren möchten, sollten Sie Folgendes verwenden:
{% if myVar not in myArray %}
ein weiteres Beispiel, das @jake stayman folgt:
{% for key, item in row.divs %}
{% if (key not in [1,2,9]) %} // eliminate element 1,2,9
<li>{{ item }}</li>
{% endif %}
{% endfor %}
Es sollte dir helfen.
{% for user in users if user.active and user.id not 1 %}
{{ user.name }}
{% endfor %}
Weitere Informationen: http://twig.sensiolabs.org/doc/tags/for.html
Versuche dies
{% if var in ['foo', 'bar', 'beer'] %}
...
{% endif %}