我正在构建一个函数来根据开始日对一周中的日期进行排序。
例如:
$days = array(0=>'monday',1=>'tuesday',2=>'wednesday',3=>'thursday',4=>'friday',5=>'saturday',6=>'sunday');
$startday = 1;
我们如何对数组进行排序,使第一个键对应于星期二(开始日),然后是星期三,星期四等等?
目前我正在使用uksort函数,但我不完全确定这将如何以正确的方式对数组进行排序。
function sortbystartday($a,$b) {
global $startday;
if($a > $startday) return -1;
return 1;
}
uksort($days,'sortbystartday');
也许用户定义的排序功能不是完成这项工作的正确选择。所以欢迎任何替代方案。
答案 0 :(得分:3)
不要打扰排序,只需根据需要操作数组。
未经测试,但应该工作:
$new_days = array_merge(array_slice($days,$startday),array_slice($days,0,$startday));
注意:这不会保留键值,所以如果您需要,请告诉我,我会修改。