首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP uSort优化?

PHP uSort优化?
EN

Stack Overflow用户
提问于 2012-06-19 19:28:26
回答 1查看 205关注 0票数 2

我想知道是否有人可以将这个usortMonths()函数优化得更好?基本上,我有一个未排序的月份数组,$bob,我希望它们按月份排序,而不是按字母顺序排序。

代码运行良好,但这是我第一次使用uSort,我不介意任何人能给我任何改进的建议?

代码语言:javascript
复制
function usortMonths($a, $b) {
$months = array('JANUARY','FEBRUARY','MARCH','APRIL','MAY','JUNE','JULY','AUGUST','SEPTEMBER','OCTOBER','NOVEMBER','DECEMBER');
    $key = array(0 => 0,1 => 0,2 => FALSE, 3 => FALSE);
    if(array_search(strtoupper($a),$months)!==FALSE) {
        $key[0] = array_search(strtoupper($a),$months);
        $key[2] = TRUE; }
    if(array_search(strtoupper($b),$months)!==FALSE) {
        $key[1] = array_search(strtoupper($b),$months);
        $key[3] = TRUE; }
    if($key[2] && $key[3]){
        if($key[0] < $key[1]) {return -1;}
        if($key[0] == $key[1]){return 0;}
        if($key[0] > $key[1]) {return 1;}
    }
}

$bob = array('april','august','december','february','January','july','june','march','may','november','october','september',);       
usort($bob,"usortMonths");
var_dump($bob);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-19 19:47:58

这个怎么样?

代码语言:javascript
复制
function usortMonths($a, $b) {
    $months = array('JANUARY','FEBRUARY','MARCH','APRIL','MAY','JUNE','JULY','AUGUST','SEPTEMBER','OCTOBER','NOVEMBER','DECEMBER');
    return array_search(strtoupper($a), $months) - array_search(strtoupper($b), $months);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11099999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档