Мне нужно отсортировать массив месяцев (алфавитные месяцы) в соответствии с их положением по месяцам, а не по алфавиту. Мой скрипт возвращает список событий и строит многоассоциативные массивы на основе лет => месяцев, например. 2012 => массив («август», «март», «сентябрь»), 2013 => массив («апрель», «май»); Он отлично строит массив, но теперь мне нужно отсортировать месяцы так, чтобы он возвращал массив 2012 => («Март», «Август», «Сентябрь»), 2013 => («Апрель», «Май);
Вот скрипт, который я сейчас использую. Обратите внимание, что в поле даты в MySQL задано значение ДАТА, а не VARCHAR, а даты вводятся ГГГГ-ММ-ДД
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;
}
}