2013-01-17 3 views
6

J'ai un tableau qui ressemble à ceci:Vérifiez si la clé existe dans le tableau de Smarty

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

Ce qui est passé à Smarty: $my_names Il y a une boucle dans mon template Smarty qui ressemble à ceci:

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

je ne vois pas comment pourrais-je utiliser le $name et $city pour accéder au tableau $my_names

J'ai essayé de faire if($my_names.$name.$city), mais ça ne marche pas.

+3

incapable de comprendre. vous avez passé array dans $ my_names et en utilisant $ names dans smarty. De plus, quelles sont les villes? –

+0

Avez-vous essayé '{{if $ my_names. $ Name. $ Ville neq NULL}} faire des choses ici {{/ if}}'? – shadyyx

+0

Montrez votre appel Smarty. –

Répondre

7

Vous pouvez utiliser la fonction array_key_exists() pour vérifier si la clé se trouve dans le tableau.

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

Cette notation fonctionnera aussi:

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