Intereting Posts
Весь сайт заблокирован, пока одна страница ожидает блокировки (PHP, ASP.NET). Зачем? преобразование простого запроса в запрос торта? Как экспортировать данные в файл excel с помощью PHPExcel Улучшить преобразование строки в читаемые URL-адреса разбиение на страницы в php Почему мой код уязвим для атаки xss? поиск расширения файла, загружаемого с помощью php Конфигурация сервера: allow_url_fopen = 0 в Поддержка Sonata для Symfony2 Как удалить специальные символы и пробелы в текстовом поле с помощью PHP Восстановить массив из квартиры (где дочерние массивы хранят индекс родительского массива) в многомерном? Как отправить электронную почту с помощью PHP с помощью пакета PEAR Mail со вложением Как добавить / установить изображения на шаблоне PHPOffice / PHPWord? Передача в 32-битное целое может привести к усечению PHP Propel? PHP SoapFault не пойман обработчиками исключений

Smarty: как ссылаться на индекс ассоциативного массива

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} но он не работает.

Пожалуйста помоги.

Related of "Smarty: как ссылаться на индекс ассоциативного массива"

посмотрите, работает ли {$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}