我有一系列工作日(见下文),我想将它们分类为“Mon-Tue-Wed-Thu-Fri-Sat-Sun”。
"Sun"=>59
"Sat"=>41
"Fri"=>21
"Thu"=>11
"Wed"=>14
"Tue"=>19
"Mon"=>31
我尝试了以下代码,但它似乎无法正常工作,结果是上面粘贴的有序数组,即不是我希望的顺序。
function orderbyweekday($a, $b) {
if (strcmp($a, "Mon") == 0)
$a = 0;
else if (strcmp($a, "Tue") == 0)
$a = 1;
else if (strcmp($a, "Wed") == 0)
$a = 2;
else if (strcmp($a, "Thu") == 0)
$a = 3;
else if (strcmp($a, "Fri") == 0)
$a = 4;
else if (strcmp($a, "Sat") == 0)
$a = 5;
else if (strcmp($a, "Sun") == 0)
$a = 6;
if (strcmp($b, "Mon") == 0)
$b = 0;
else if (strcmp($b, "Tue") == 0)
$b = 1;
else if (strcmp($b, "Wed") == 0)
$b = 2;
else if (strcmp($b, "Thu") == 0)
$b = 3;
else if (strcmp($b, "Fri") == 0)
$b = 4;
else if (strcmp($b, "Sat") == 0)
$b = 5;
else if (strcmp($b, "Sun") == 0)
$b = 6;
// if same day, return 0
if ($a == $b) {
return 0;
}
return ($a > $b) ? -1 : 1;
}
uksort($movies_per_day, "orderbyweekday");
我也想对一系列月份年份做类似的事情(例如“2010 年 6 月”=>10、“2009 年 5 月”=>111 等),但是一旦我做对了,它应该会更容易。
非常感谢。