检查smarty数组中是否存在密钥

时间:2013-01-17 15:00:52

标签: php arrays smarty

我有一个如下所示的数组:

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

哪个传递给smarty:$my_names 我的Smarty模板中有一个循环,如下所示:

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

我无法看到如何使用$name$city访问数组$my_names

我尝试过if($my_names.$name.$city),但它无法正常工作。

2 个答案:

答案 0 :(得分:15)

这种表示法也适用:

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

答案 1 :(得分:8)

您可以使用 array_key_exists()函数检查密钥是否在数组中。

{if array_key_exists('needle', $haystack)} 
    DoSomethingAboutIt 
{/if}