是否有特定的智能功能按字母顺序排列数组?

时间:2009-07-07 13:39:31

标签: php arrays smarty

我正在为多语言网站使用智能模板。我得到了一个按国家/地区代码排序的国家/地区,这对于英文版本是可以的,因为国家/地区名称的顺序正确但其他语言没有问题(例如英国留在“U”,而在法语中则打印出来“Royaume Uni”。

是否有按字母顺序排列数组的智能功能?

2 个答案:

答案 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}