我有这个糟糕的排序功能,当在同一页面上调用两个时,它开始给我带来问题。它很可能会在同一页面上被多次调用。
我希望能够调用排序函数并发送特定的参数来确定排序的类型。其中包括按 ( $arr['key']
) 排序的字段,是字符串还是整数 ( strcmp
vs x - y
) 以及比较的方向 ( asc
vs desc
)。
我怎样才能以一种不疯狂、复杂和混乱的方式做到这一点?我尝试了很多很多搜索,但是我发现了很多使用对象和类的东西,这让我很困惑,我没有看到如何发送更多参数。
任何帮助,即使这是一个重复的问题并且您有答案,将不胜感激!
//awful sorting function
switch($sort) {
case 'photoname_asc':
function a_compare($a, $b) {
$t1 = $a['photoname'];
$t2 = $b['photoname'];
return strcmp($t1, $t2);
}
usort($photos, 'a_compare');
default;
break;
case 'photoname_desc':
function a_compare($a, $b) {
$t1 = $a['photoname'];
$t2 = $b['photoname'];
return strcmp($t2, $t1);
}
usort($photos, 'a_compare');
break;
case 'dateup_asc':
function a_compare($a, $b) {
$t1 = $a['id'];
$t2 = $b['id'];
return $t1 - $t2;
}
usort($photos, 'a_compare');
break;
case 'dateup_desc':
function a_compare($a, $b) {
$t1 = $a['id'];
$t2 = $b['id'];
return $t2 - $t1;
}
usort($photos, 'a_compare');
break;
}
非常感谢。