2013-01-17 70 views
6

我有一個數組,看起來像這樣:檢查鍵智者數組存在

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),但它不起作用。

+3

無法理解。你已經在$ my_names中傳遞了數組,並且在smarty中使用了$名稱。此外,什麼$城市? –

+0

你試過了嗎?{{if $ my_names。$ name。$ city neq NULL}}在這裏做些什麼{{/ if}}'? – shadyyx

+0

顯示你的聰明電話。 –

回答

7

您可以使用array_key_exists()函數來檢查密鑰是否在數組中。

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

這個符號也可以工作:

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