Ниже возможное решение. Разбирайся:
<?php
function myDataFormat($d) {
$months = [
'январь'=>'01',
'июнь'=>'06',
'июля'=>'07'
];
$splitted_data = explode(' ', $d);
return $splitted_data[2]
. $months[$splitted_data[1]]
. str_pad($splitted_data[0], 2, '0', STR_PAD_LEFT) ;
}
function mySort($arr) {
usort(
$arr,
function($a, $b) {
return myDataFormat($a['data']) <=> myDataFormat($b['data']);
}
);
return $arr;
}
$arr= [
[
"header"=>'',
"title"=>'',
"data"=>'12 июнь 2021',
],
[
"header"=>'',
"title"=>'',
"data"=>'30 июнь 2021',
],
[
"header"=>'',
"title"=>'',
"data"=>'1 июля 2021',
],
[
"header"=>'',
"title"=>'',
"data"=>'1 январь 2020',
]
];
$sorted = mySort($arr);
print_r($sorted);
PHP code online