2010-12-28 10 views
0

Ich baue eine Funktion zum Sortieren der Wochentage basierend auf dem Starttag.Sortieren von Tagen der Woche mit einer PHP-Sortierfunktion

Zum Beispiel:

$days = array(0=>'monday',1=>'tuesday',2=>'wednesday',3=>'thursday',4=>'friday',5=>'saturday',6=>'sunday'); 
$startday = 1; 

Wie können wir das Array erhalten sortiert, so dass der erste Schlüssel zum Dienstag entspricht (der Starttag), gefolgt von Mittwoch, Donnerstag, usw.?

Derzeit verwende ich die Uksort-Funktion, aber ich bin mir nicht ganz sicher, wie dies das Array in der richtigen Weise sortieren würde.

function sortbystartday($a,$b) { 

global $startday; 

if($a > $startday) return -1; 

return 1; 
} 

uksort($days,'sortbystartday'); 

Vielleicht ist eine benutzerdefinierte Sortierfunktion nicht die richtige Wahl, um die Aufgabe zu erledigen. Daher sind alle Alternativen willkommen.

Antwort

3

Sorgt nicht für die Sortierung, manipuliert einfach das Array wie nötig.

Ungeprüfte, aber sollte Arbeit:

$new_days = array_merge(array_slice($days,$startday),array_slice($days,0,$startday)); 

Hinweis: Dies wird den Schlüsselwert nicht beibehalten, wenn Sie also, dass benötigen lassen Sie mich wissen und ich werde ändern.

+0

Danke, funktioniert perfekt! Die Schlüsselwerte müssen nicht beibehalten werden. – DADU

Verwandte Themen