首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按位置排序月份数组

按位置排序月份数组
EN

Stack Overflow用户
提问于 2012-03-05 16:07:51
回答 2查看 893关注 0票数 1

我需要根据月份的位置对月份(按字母顺序的月份)数组进行排序,而不是按字母顺序。我的脚本返回一个事件列表,并基于年份和月份构建多关联数组,例如2012年=>数组(“八月”,“三月”,“九月”),2013年=>数组(“四月”,“五月”);它完美地构建了数组,但我现在需要对月份进行排序,以便它将返回2012年=>数组(“三月”,“八月”,“九月”),2013 => (“四月”,“五月”);

这是我目前正在使用的脚本。请注意,mysql中的日期字段设置为date,而不是VARCHAR,输入的日期为YYYY-MM-DD

代码语言:javascript
运行
复制
public function returnMonthsArray() {
        $sql = "SELECT `date` FROM `events` WHERE `status`=1 ORDER BY `name`";
        $results = $this->db->returnMultiAssoc($sql);
        $navArray = array();
        foreach($results as $key => $value) {
            $timestamp = strtotime($value["date"]);
            $year = date("Y",$timestamp);
            $month = date("F",$timestamp);
            if(!array_key_exists($year, $navArray)) {
                $navArray[$year] = array();
            }
            if(!in_array($month,$navArray[$year])) {
                $navArray[$year][] = $month;
            }
        }
        if(count($navArray)) {
            return $navArray;
        } else {
            return false;
        }
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-05 16:41:08

尝试此查询

代码语言:javascript
运行
复制
SELECT `date` FROM `events`
WHERE `status`=1 ORDER BY `name`"
GROUP BY MONTH(`date`)
票数 1
EN

Stack Overflow用户

发布于 2012-03-05 16:25:03

看看这篇文章:

PHP and Enums

通过为月份指定一个类似枚举的行为,可以更容易地按照您想要的方式对它们进行排序。

我希望这对你有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9563421

复制
相关文章

相似问题

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