2009-03-15 18 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 
) 

Il valore nokia_e61_1.jpg è tenuto in {$getvars.imagename}.Smarty: come riferimento all'indice array associativo

Ho scritto {$imagelist.additional.image.`$getvars.imagename`.name_body} ma non funziona.

prega di aiuto.

risposta

21

vedere se {$imagelist.additional.image[$getvars.imagename].name_body} funziona

+0

no, doesn 't funziona :( –

+0

sembra che fa per io, ho appena provato con $ a [$ bc] .d e ha funzionato –

+0

wow incredibile il suo funzionamento in un ottimo modo :) – user737767

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

Non suggerire l'utilizzo di PHP all'interno di un modello smarty. – Rob

2

Restructure matrice, le chiavi per i 'immagini' interni di offset sono ridondanti comunque:

$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' 
); 

fornisce immagini numericamente indicizzate:

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

Non mi piace la smarty per questo, tuttavia lo uso. Ecco l'estratto documentazione forma

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

Per essere in grado di farlo, è necessario

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

Speranza che aiuta