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

Hom*_*ith 7 php arrays smarty

我有一个看起来像这样的数组:

array(
    'name1' => array('city1', 'city2', 'city3'),
    'name2' => array('city1', 'city4'),
    'namen' => array('city1', 'city7', 'cityn')
);
Run Code Online (Sandbox Code Playgroud)

传递给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}}
Run Code Online (Sandbox Code Playgroud)

我没有看到如何使用$name$city访问数组$my_names

我试过了if($my_names.$name.$city),但它不起作用.

Bri*_*vre 15

这种表示法也适用:

{if 'needle'|array_key_exists:$haystack}
....
{/if}
Run Code Online (Sandbox Code Playgroud)


Dan*_*ton 8

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

{if array_key_exists('needle', $haystack)} 
    DoSomethingAboutIt 
{/if}
Run Code Online (Sandbox Code Playgroud)