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 
) 

Der Wert wird in {$getvars.imagename} gespeichert.Smarty: So verweisen Sie auf den Index des assoziativen Arrays

Ich schrieb {$imagelist.additional.image.`$getvars.imagename`.name_body}, aber es funktioniert nicht.

Bitte helfen.

Antwort

21

sehen, ob {$imagelist.additional.image[$getvars.imagename].name_body} arbeitet

+0

hilft nicht, es spielt keine funktioniert :( –

+0

sieht aus wie es tut ich, ich habe gerade versucht mit $ a [$ bc] .d und es funktionierte –

+0

wow erstaunlich seine Arbeit in einer guten Art und Weise :) – user737767

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

Schlage nicht vor, PHP innerhalb einer Smarty-Vorlage zu verwenden. – Rob

2

Umstrukturieren die Anordnung, die Schlüssel für die inneren 'Bilder' versetzt sind redundant trotzdem:

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

Gibt Ihnen numerisch indizierte Bilder:

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

Ich mag Smarty nicht dafür, trotzdem benutze ich es. Hier auszugsweise Dokumentation

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

Lage sein, es zu tun, müssen Sie

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

Hoffe, dass es

Verwandte Themen