Trier les clés accentuées d'un tableau associatif en PHP
Posté : 30 déc. 2007, 23:05
ksort() se moque de vous ? Voilà de quoi trier sans vergogne les clés accentuées de vos tableaux :
Pour une explication explicative : Trier les clés accentuées d'un tableau associatif.
function wd_remove_accents($str, $charset='utf-8')
{
$str = htmlentities($str, ENT_NOQUOTES, $charset);
$str = preg_replace('#\&([A-za-z])(?:uml|circ|tilde|acute|grave|cedil|ring)\;#', '\1', $str);
$str = preg_replace('#\&([A-za-z]{2})(?:lig)\;#', '\1', $str);
$str = preg_replace('#\&[^;]+\;#', '', $str);
return $str;
}
function wd_unaccent_compare($a, $b)
{
return strcmp(wd_remove_accents($a), wd_remove_accents($b));
}
$ar = array
(
'popé' => 4,
'épinard' => 1,
'carotte' => 5,
'Marrons' => 6,
'epsilon' => 1,
'zéro' => 2,
'popo' => 4,
'Étourderie' => 2
);
uksort($ar, 'wd_unaccent_compare');
Code : Tout sélectionner
Array
(
[Marrons] => 6
[Étourderie] => 2
[carotte] => 5
[épinard] => 1
[epsilon] => 1
[popé] => 4
[popo] => 8
[zéro] => 7
)