Check if key exists in smarty array

22,477

Solution 1

This notation will work too :

{if 'needle'|array_key_exists:$haystack}
....
{/if}

Solution 2

You can use the array_key_exists() function to check whether the key is in the array.

{if array_key_exists('needle', $haystack)} 
    DoSomethingAboutIt 
{/if}
Share:
22,477
Hommer Smith
Author by

Hommer Smith

Updated on August 01, 2022

Comments

  • Hommer Smith
    Hommer Smith almost 2 years

    I have an array that looks like this:

    array(
        'name1' => array('city1', 'city2', 'city3'),
        'name2' => array('city1', 'city4'),
        'namen' => array('city1', 'city7', 'cityn')
    );
    

    Which is passed to smarty as : $my_names There is a loop in my Smarty template that looks like this:

    {{foreach from=$names item=name}}
      {{foreach from=$cities item=city}}
      //Check if name1 exist and after check if the city is in the array for that name
      {{/foreach}}
    {{/foreach}}
    

    I fail to see how would I use the $name and $city to access the array $my_names

    I have tried doing if($my_names.$name.$city), but it doesn't work.