我有個工作日(見下文),我想排序爲「週一至週二,週三,週四,週五,週六 - 週日」的數組。PHP排序工作日和月年通過陣列的客戶訂單
"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,等等),但是一旦我得到這個對它應該更容易。
非常感謝。
大,它的作品! 但我不明白我做錯了什麼,但從來不知道。 謝謝! – MDT
我認爲原來的錯誤可以通過改變'return($ a> $ b)來解決? -1:1;'返回'($ a <$ b)? -1:1;' – Orangepill
隨時接受答案,如果這爲你解決。 – Orangepill