Check if key exists in smarty array

Hommer Smith picture Hommer Smith · Jan 17, 2013 · Viewed 20.6k times · Source

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.

Answer

Brice Favre picture Brice Favre · Jun 13, 2013

This notation will work too :

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