我使用以下方法在模板中创建数组:
{foreach from=$items item=node}
{if $node->fielddefs.location01.value != ''}{$locations[] = $node->fielddefs.location01.value}{/if}
{if $node->fielddefs.location02.value != ''}{$locations[] = $node->fielddefs.location02.value}{/if}
{if $node->fielddefs.location02.value != ''}{$locations[] = $node->fielddefs.location03.value}{/if}
{/foreach}
我需要按字母顺序对数组进行排序。我尝试了以下usort函数:
if (!function_exists('do_sort')) {
function do_sort($a, $b) {
return $a > $b;
}
}
$data = $params['data'];
usort($data, 'do_sort');
$smarty->assign('sorted', $data);
它确实有效,因为我的数组不正确我猜?我的数组看起来像这样:
Array
(
[0] => Any
[1] => Chamonix
[2] => Courmayeur
[3] => Verbier
[4] => Zermatt
[5] => Verbier
[6] => Chamonix
)
任何人都可以帮我实现排序输出吗?
由于
答案 0 :(得分:0)
试试这个:
function do_sort($a, $b) {
return $a < $b ? -1 : 1;
}
usort
函数中的回调应返回-1,0或1(或更一般地,正数,负数或零),而不是true / false。