присвоение ассоциативного массива в smarty - PullRequest
1 голос
/ 02 марта 2011

Итак, что я пытаюсь добиться - это присвоить несколько значений разумному массиву по индексам, которые я хочу. Трудно описать это, поэтому я просто покажу это:

{assign var='paymentTypes' 
value=','|explode:"$paymentMethods[50],$paymentMethods[51],
$paymentMethods[11],$paymentMethods[10],$paymentMethods[12],
$paymentMethods[99],$paymentMethods[100]"}

(отформатировано для удобства чтения)

Итак, теперь у меня есть массив paymentTypes со значениями, помещенными в ключи, начиная с 0. Я хочу сохранить ключи, которые были в массиве paymentMethods - 50, 51, 11 и т. Д.

И это должно быть сделано полностью в файле шаблона Smarty. Спасибо за любые идеи.

1 Ответ

1 голос
/ 02 марта 2011

Я нашел обходной путь. Необходимый ассоциативный массив был для тега HTML Select. Поэтому я просто использовал {html_options} с атрибутами value и output вместо параметров. Я назначил один массив только для значений, а другой только для вывода.

У меня было это:

{html_options options=$paymentTypes}

Но я не хотел показывать все значения из массива paymentTypes, но мне нужно было, чтобы они были в массиве. Так что я сделал это:

{assign var='paymentTypesOutput' value=','|explode:"$paymentTypes[50],
$paymentTypes[51],$paymentTypes[11],$paymentTypes[10],$paymentTypes[12],
$paymentTypes[99],$paymentTypes[100]"}

{assign var='paymentTypesValues' value=','|explode:"50,51,11,10,12,99,100"}

{html_options values=$paymentTypesValues output=$paymentTypesOutput}

Это не самое элегантное решение - но оно работает.

...