我正在为多语言网站使用智能模板。我得到了一个按国家/地区代码排序的国家/地区,这对于英文版本是可以的,因为国家/地区名称的顺序正确但其他语言没有问题(例如英国留在“U”,而在法语中则打印出来“Royaume Uni”。
是否有按字母顺序排列数组的智能功能?
答案 0 :(得分:3)
你需要对它进行排序,然后才能将它分配给smarty:
asort($countryList);
$smarty->assign($countryList);
使用:
答案 1 :(得分:2)
您可以在Smarty中将修改器应用于数组(@
前缀表示修饰符应用于整个数组,而不是每个元素):
$array|@some_modifier
然而, asort()
不能用作修饰符,因为它修改了传递的数组并返回布尔值而不是返回修改后的数组。但是,您可以定义自己的函数并将其用作修饰符,例如
function sort_array($array) {
asort($array);
return $array;
}
然后在Smarty你可以做类似
的事情{foreach from=$array|@sort_array item=val}
{$val}
{/foreach}