2009-03-15 9 views
13
Array $imagelist: 

Array ( 
    [additional] => Array ( 
     [count] => 2 
     [image] => Array ( 
      [nokia_e61_1.jpg] => Array ( 
       [name_body] => nokia_e61_1 
       [name_ext] => jpg 
      ) 
      [nokia_e61_2.jpg] => Array ( 
       [name_body] => nokia_e61_2 
       [name_ext] => jpg 
      ) 
      [nokia_e61_3.jpg] => Array ( 
       [name_body] => nokia_e61_3 
       [name_ext] => jpg 
      ) 
      [nokia_e61_4.jpg] => Array ( 
       [name_body] => nokia_e61_4 
       [name_ext] => jpg 
      ) 
     ) 
    ) 
    [main] => nokia_e61 
) 

La valeur nokia_e61_1.jpg est conservée dans {$getvars.imagename}. J'ai écrit {$imagelist.additional.image.`$getvars.imagename`.name_body} mais cela ne fonctionne pas.Smarty: Comment faire référence à l'index de tableau associatif

Aidez-nous s'il vous plaît.

Répondre

21

voir si {$imagelist.additional.image[$getvars.imagename].name_body} fonctionne

+0

pas, il n 't fonctionne :( –

+0

semble comme il le fait à moi, je viens d'essayer avec $ a [$ bc] .d et cela a fonctionné –

+0

wow incroyable son fonctionnement d'une grande manière :) – user737767

0
{php}echo $imagelist['additional']['image'][$getvars['imagename']]['name_body'];{/php} 
+3

Ne suggère pas d'utiliser PHP à l'intérieur d'un modèle smarty. – Rob

2

Restructurer le tableau, les clés de l'offset 'images' intérieures sont redondantes de toute façon:

$imagelist = array('additional' => array('count' => 2, 
     'image' => array(
      array('name_body' => 'nokia_e61_1', 
        'name_ext' => 'jpg'), 
      array('name_body' => 'nokia_e61_2', 
        'name_ext' => 'jpg'), 
      array('name_body' => 'nokia_e61_3', 
        'name_ext' => 'jpg'), 
      array('name_body' => 'nokia_e61_4', 
        'name_ext' => 'jpg') 
     ) 
    ), 
    'main' => 'nokia_e61' 
); 

vous donne des images numériquement indexées:

array(2) { 
    ["additional"]=> 
    array(2) { 
["count"]=> 
int(2) 
["image"]=> 
array(4) { 
    [0]=> 
    array(2) { 
    ["name_body"]=> 
    string(11) "nokia_e61_1" 
    ["name_ext"]=> 
    string(3) "jpg" 
    } 
    [1]=> 
    array(2) { 
    ["name_body"]=> 
    string(11) "nokia_e61_2" 
    ["name_ext"]=> 
    string(3) "jpg" 
    } 
    [2]=> 
    array(2) { 
    ["name_body"]=> 
    string(11) "nokia_e61_3" 
    ["name_ext"]=> 
    string(3) "jpg" 
    } 
    [3]=> 
    array(2) { 
    ["name_body"]=> 
    string(11) "nokia_e61_4" 
    ["name_ext"]=> 
    string(3) "jpg" 
    } 
} 
} 
["main"]=> 
string(9) "nokia_e61" 
} 

//and then the smarty bit 
{$imagelist.additional.image[0].name_body} 
{$imagelist.additional.image[1].name_body} 
{$imagelist.additional.image[2].name_body} 
{$imagelist.additional.image[3].name_body} 
3

Je n'aime pas smarty pour ça, néanmoins je l'utilise. Voici la documentation sous forme d'extrait

{$foo.$bar} <-- display variable key value of an array, similar to PHP $foo[$bar] 

Pour être en mesure de le faire, vous devez

{assign var='key' value=$getvars.imagename} 
{$imagelist.additional.image.$key.name_body} 

Hope it helps

Questions connexes