私は配列を持っています:
$a = array("Freshman Spring" => 3, "Freshman Winter" => 2, "Freshman Summer" => 4, "Freshman Fall" => 1);
学年ごとに異なる配列がありますが、fre、sophなどの年を混合する配列はありません。
私の問題は、学校で季節が発生する方法(秋、冬、春、夏)でこの配列を並べ替える必要があることです。uksortを使用してみましたが、同じ方法でソートされるため、実際には何も実行されません。
function cmp($a, $b) {
$a = preg_replace('@^(freshman|sophomore|junior|senior) @', '', $a);
$b = preg_replace('@^(freshman|sophomore|junior|senior) @', '', $b);
return strcasecmp($a, $b);
}
uksort($a, "cmp");
私はこれを手に入れます:
Array
(
[Freshman Fall] => 1
[Freshman Spring] => 3
[Freshman Summer] => 4
[Freshman Winter] => 2
)
しかし、これを取得する必要があります:
Array
(
[Freshman Fall] => 1
[Freshman Winter] => 2
[Freshman Spring] => 3
[Freshman Summer] => 4
)
uksortは行く方法ですか?そして、私は何が間違っているのですか?配列の値はそれらの値ではなく、オブジェクトを保持することに注意してください。ありとあらゆる助けに大いに感謝します!