使用PHP排序功能对星期几进行排序

时间:2010-12-28 20:37:36

标签: php sorting user-defined-functions

我正在构建一个函数来根据开始日对一周中的日期进行排序。

例如:

$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');

也许用户定义的排序功能不是完成这项工作的正确选择。所以欢迎任何替代方案。

1 个答案:

答案 0 :(得分:3)

不要打扰排序,只需根据需要操作数组。

未经测试,但应该工作:

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

注意:这不会保留键值,所以如果您需要,请告诉我,我会修改。