In Twig, check if a specific key of an array exists In Twig, check if a specific key of an array exists arrays arrays

In Twig, check if a specific key of an array exists


Twig example:

{% if array.key is defined %}  // do something{% else %}  // do something else{% endif %}


You can use the keys twig function

{% if myVar in someOtherArray|keys %}


Quick Answer (TL;DR)

  • DeveloperTLindel wants to test for existence of array key in Twig.
  • DeveloperTLindel wants to trap any errors associated with undefined key.
  • This can be handled using the default filter.

Detailed Answer

Context

  • Twig 2.x (latest version as of Wed 2017-03-08)
  • General-purpose use of the default filter.

Problem

  • Scenario:
  • DeveloperTLindel wants to test for existence of array key in Twig.
  • DeveloperTLindel wants to avoid any errors or exceptions caused by potentially undefined key.

Solution

  • DeveloperTLindel can use the default filter.
  • The default filter catches any exceptions owing to undefined variable, and allows short-circuit substition of an alternate value.
  • The default filter is chainable.

Example01

{#- ****************************************  testing for a single key in associative array  -#}   {%- set mystring = myarray['key-no-existo'] |default('__BLANK__')  -%}{#- ****************************************  testing for a multiple keys in associative array  -#}   {%- set mystring = myarray['alpha']        |default(myarray['bravo'])        |default(myarray['charlie'])        |default('__BLANK__')        -%}

See also