español array twig

español - Twig: in_array o similar posible dentro de la declaración if?



twig html (4)

Debería ayudarte.

{% for user in users if user.active and user.id not 1 %} {{ user.name }} {% endfor %}

Más información: http://twig.sensiolabs.org/doc/tags/for.html

Estoy usando Twig como motor de plantillas y realmente me encanta. Sin embargo, ahora me he encontrado en una situación que definitivamente debe ser posible de una manera más simple de lo que he encontrado.

Lo que tengo ahora es esto:

{% 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 %}

Lo que estoy buscando es algo como esto:

{% 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 %}

¿Hay alguna manera de lograr esto que no he visto todavía?

Si necesito crear mi propia extensión, ¿cómo puedo acceder myVar dentro de la función de prueba?

¡Gracias por tu ayuda!


Solo para aclarar algunas cosas aquí. La respuesta que fue aceptada no hace lo mismo que PHP in_array .

Para hacer lo mismo que PHP in_array usa la siguiente expresión:

{% if myVar in myArray %}

Si quieres negar esto, debes usar esto:

{% if myVar not in myArray %}


Solo tiene que cambiar la segunda línea de su segundo bloque de código de

{% if myVar is in_array(array_keys(someOtherArray)) %}

a

{% if myVar in someOtherArray|keys %}

in es el operador de contención y keys un filtro que devuelve las claves de un arrays.


otro ejemplo siguiente @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 %}