私はこのひどいソート機能を持っており、同じページで 2 つが呼び出されたときに問題が発生し始めました。同じページで何度も呼び出される可能性が高いです。
並べ替え関数を呼び出し、特定のパラメーターを送信して並べ替えの種類を決定できるようにしたいと考えています。これらには、( ) でソートされるフィールド$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;
}
どうもありがとうございました。