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 )
Значение nokia_e61_1.jpg
хранится в {$getvars.imagename}
.
Я написал {$imagelist.additional.image.`$getvars.imagename`.name_body}
но он не работает.
Пожалуйста помоги.
посмотрите, работает ли {$imagelist.additional.image[$getvars.imagename].name_body}
Мне это не нравится, но я использую его. Вот документация к форме
{$foo.$bar} <-- display variable key value of an array, similar to PHP $foo[$bar]
Чтобы это сделать, вы должны
{assign var='key' value=$getvars.imagename} {$imagelist.additional.image.$key.name_body}
Надеюсь, поможет
Реструктурируйте массив, ключи для внутреннего смещения «изображений» в любом случае избыточны:
$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' );
Дает вам числовые индексированные изображения:
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}
{php}echo $imagelist['additional']['image'][$getvars['imagename']]['name_body'];{/php}