Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check if key exists in smarty array

Tags:

arrays

php

smarty

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.

like image 528
Hommer Smith Avatar asked Jan 17 '13 15:01

Hommer Smith


2 Answers

This notation will work too :

{if 'needle'|array_key_exists:$haystack}
....
{/if}
like image 123
Brice Favre Avatar answered Nov 12 '22 12:11

Brice Favre


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}
like image 13
Daniël W. Crompton Avatar answered Nov 12 '22 13:11

Daniël W. Crompton