У меня есть два массива $array1
и $array2
, и я хочу объединить их в шаблоне smarty для дальнейшей обработки. Я не хочу делать это в php, поскольку я должен использовать их отдельно, как я могу объединить два массива в smarty tpl?Как использовать array_merge в smarty?
ответ
В зависимости от конфигурации системы безопасности и Smarty версии, вы можете просто сделать
{assign 'array_merged' $array1|array_merge:$array2}
Для получения дополнительной информации о правильной настройке безопасности, смотреть на это http://www.smarty.net/docs/en/advanced.features.tpl#advanced.features.security
$ php_functions является массивом PHP функции, которые считаются доверенными и могут использоваться из шаблона. Чтобы отключить доступ ко всем функциям PHP, установите $ php_functions = null. Пустой массив ($ php_functions = array()) позволит использовать все функции PHP. По умолчанию используется массив ('isset', 'empty', 'count', 'sizeof', 'in_array', 'is_array', 'time', 'nl2br').
Спасибо за помощь –
<?php
// This is effectively the same as assign()
$smarty->append('foo', 'Fred');
// After this line, foo will now be seen as an array in the template
$smarty->append('foo', 'Albert');
$array = array(1 => 'one', 2 => 'two');
$smarty->append('X', $array);
$array2 = array(3 => 'three', 4 => 'four');
// The following line will add a second element to the X array
$smarty->append('X', $array2);
// passing an associative array
$smarty->append(array('city' => 'Lincoln', 'state' => 'Nebraska'));
?>
Вы можете создать новую переменную, добавив оба массива к новой переменной.
См. Документацию here.
спасибо за ваш ответ, но я действительно хочу сделать это в файле smrty tpl, есть ли у вас какие-либо другие предложения, которые могут действительно помочь мне в этом. –
Зависит от вашей конфигурации безопасности и смарт-версии, вы можете просто выполнить '{assign 'array_merged' $ array1 | array_merge: $ array2}'. – sofl
Спасибо @sofl Это то, что я искал, Можете ли вы опубликовать его в качестве ответа, чтобы я мог его принять. –