2015-12-10 2 views
2

У меня есть два массива $array1 и $array2, и я хочу объединить их в шаблоне smarty для дальнейшей обработки. Я не хочу делать это в php, поскольку я должен использовать их отдельно, как я могу объединить два массива в smarty tpl?Как использовать array_merge в smarty?

+1

Зависит от вашей конфигурации безопасности и смарт-версии, вы можете просто выполнить '{assign 'array_merged' $ array1 | array_merge: $ array2}'. – sofl

+0

Спасибо @sofl Это то, что я искал, Можете ли вы опубликовать его в качестве ответа, чтобы я мог его принять. –

ответ

6

В зависимости от конфигурации системы безопасности и 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').

+0

Спасибо за помощь –

1
<?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.

+0

спасибо за ваш ответ, но я действительно хочу сделать это в файле smrty tpl, есть ли у вас какие-либо другие предложения, которые могут действительно помочь мне в этом. –