I'm using array_multisort
to sort the array like this. It is working well until some ascent characters are present. The sorting is treating the ascents as a separate letter and its giving incorrect results (É and E should be treated as same letter while sorting but its not).
$array = array(
0 => array(
'Date_meeting' => '02/09/2021',
'equiper_name' => 'ABERK-DEROUI Ghan',
'benef_name' => 'DIOL GUE Giova'
),
1 => array(
'Date_meeting' => '01/09/2021',
'equiper_name' => 'ABERK-DEROUI Ghan',
'benef_name' => 'DAPP Fran'
),
2 => array(
'Date_meeting' => '03/09/2021',
'equiper_name' => 'ABERK-DEROUI Ghan',
'benef_name' => 'DÉNÉRÉA Ferd'
),
3 => array(
'Date_meeting' => '04/09/2021',
'equiper_name' => 'ABERK-DEROUI Ghan',
'benef_name' => 'DEPRE Fran'
),
4 => array(
'Date_meeting' => '05/09/2021',
'equiper_name' => 'ABERK-DEROUI Ghan',
'benef_name' => 'CRAUSZ Madlei'
),
5 => array(
'Date_meeting' => '01/09/2021',
'equiper_name' => 'ABERK-DEROUI Ghan',
'benef_name' => 'ALCYD Monsrat'
),
6 => array(
'Date_meeting' => '02/09/2021',
'equiper_name' => 'ABERK-DEROUI Ghan',
'benef_name' => 'CORHES Pautte'
)
);
array_multisort(array_column($array, 'benef_name'),
SORT_ASC,
array_column($array, 'Date_meeting'),
SORT_DESC,
$array
);
echo "<pre>";
print_r($array);
When I execute this, the following comes at the last which is incorrect.
array(
'Date_meeting' => '03/09/2021',
'equiper_name' => 'ABERK-DEROUI Ghan',
'benef_name' => 'DÉNÉRÉA Ferd'
)
Here is the fiddle.
This is normal and normally when we are working with ascents we use multi byte functions. Does the array_multisort has anything to handle the multi byte strings?