Итак, простое решение для этого - превратить каждое из значений в объекты с DateTime :: createFromFormat , отсортировать их и затем снова вывести значения.
Перед тем, как яЯ видел этот вопрос, в котором я никогда не играл с объектами DateTime, но они удивительны и с ними легко работать, и createFromFormat
имеет смысл.
$array = array("2011-September_30","2011-June_4","2010-November_9","2011-November_29","2010-December_19");
foreach($array as $item)
{
$timestamps[] = DateTime::createFromFormat('Y-F_d',$item);
}
sort($timestamps);
foreach($timestamps as $timestamp)
{
$newarray[] = $timestamp->format('Y-F_d');
}
даст вам
Array
(
[0] => 2010-November_09
[1] => 2010-December_19
[2] => 2011-June_04
[3] => 2011-September_30
[4] => 2011-November_29
)