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 
) 

El valor nokia_e61_1.jpg se mantiene en {$getvars.imagename}.Smarty: cómo hacer referencia al índice de matriz asociativa

Escribí {$imagelist.additional.image.`$getvars.imagename`.name_body} pero no funciona.

Por favor ayuda.

Respuesta

21

ver si {$imagelist.additional.image[$getvars.imagename].name_body} obras

+0

no, que doesn 't funciona :( –

+0

parece que hace a yo, acabo de probar con $ a [$ bc] .d y funcionó –

+0

wow increíble, está funcionando de una manera genial :) – user737767

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

No sugiera usar PHP dentro de una plantilla inteligente. – Rob

2

Reestructurar la matriz, las llaves de las 'imágenes' interiores de compensación son redundantes de todos modos:

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

velocidad que proporciona imágenes numéricamente indiciado:

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

No me gusta Smarty para esto, sin embargo lo uso. Aquí está la documentación forma de extracto

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

Para poder hacerlo, hay que

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

espero que ayude

Cuestiones relacionadas