我需要根据月份的位置对月份(按字母顺序的月份)数组进行排序,而不是按字母顺序。我的脚本返回一个事件列表,并基于年份和月份构建多关联数组,例如2012年=>数组(“八月”,“三月”,“九月”),2013年=>数组(“四月”,“五月”);它完美地构建了数组,但我现在需要对月份进行排序,以便它将返回2012年=>数组(“三月”,“八月”,“九月”),2013 => (“四月”,“五月”);
这是我目前正在使用的脚本。请注意,mysql中的日期字段设置为date,而不是VARCHAR,输入的日期为YYYY-MM-DD
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;
}
}发布于 2012-03-05 16:41:08
尝试此查询
SELECT `date` FROM `events`
WHERE `status`=1 ORDER BY `name`"
GROUP BY MONTH(`date`)发布于 2012-03-05 16:25:03
https://stackoverflow.com/questions/9563421
复制相似问题