<?php
$array = [
"Feedback 13 okt",
"Feedback 11 okt",
"Feedback 12 okt",
"Sweet",
"Feedback 9 okt",
"Feedback 6 okt",
"Feedback 8 jun",
"Fixes",
"Realisation",
"Feedback 22 mar",
"Do something",
"Feedback 3 maj",
"Feedback 1 dec",
];
$mmm = array_flip([
"jan", "feb", "mar", "apr",
"maj", "jun", "jul", "aug",
"sep", "okt", "nov", "dec"
]);
usort(
$array,
fn($a, $b) =>
strtok($a, ' ') <=> strtok($b, ' ')
?: (sscanf($a, "Feedback %d %s", $aDay, $aMon)
? [$mmm[$aMon] ?? 13, $aDay]
: [13, 32])
<=>
(sscanf($b, "Feedback %d %s", $bDay, $bMon)
? [$mmm[$bMon] ?? 13, $bDay]
: [13, 32])
?: natcasecmp($a, $b)
);
var_export($array);
preferences:
50.86 ms | 402 KiB | 5 Q