PHP Alfabetik Sıralamada Türkçe Karakter Sorunu ?

0
Onaylı Üye
Üye
Katılım
26 Ekim 2013
Mesajlar
18
Tepki puanı
0
Konum
İzmir
Arkadaşlar,

php ile alfabatik sıralama yapmak istiyorum fakat ç harfi ile başlayan bir şey eklesem hemen ilk sıraya geliyor Türkçe karakter sorununu nasıl çözebilirim ?
 
0
Onaylı Üye
Üye
Katılım
29 Ağustos 2015
Mesajlar
4
Tepki puanı
0
PHP:
function turkce_sirala($a, $b) {
    $turkce = array('ç' => 'c', 'ğ' => 'g', 'ı' => 'i', 'ö' => 'o',
    'ş' => 's', 'ü' => 'u', 'Ç' => 'C', 'Ğ' => 'G',
    'İ' => 'I', 'Ö' => 'O', 'Ş' => 'S', 'Ü' => 'U');
 
    $a = preg_replace("/(ı|ğ|ü|ş|ö|ç|Ğ|Ü|Ş|İ|Ö|Ç)/e", "\$turkce['\\1'].'~'", $a);
    $b = preg_replace("/(ı|ğ|ü|ş|ö|ç|Ğ|Ü|Ş|İ|Ö|Ç)/e", "\$turkce['\\1'].'~'", $b);
 
    if ($a == $b)
      return 0;
 
      return ($a < $b) ? -1 : 1;
}

Bu fonksiyonu şu şekilde olan bir arraya uygular isek

PHP:
$array = array('ahmet', 'mehmet', 'şahin', 'çetin', 'cenk', 'ziya');
 
usort($array, "turkce_sirala");
print_r($array);

Sonuç olarak çıktımız

PHP:
Array ( [0] => ahmet [1] => cenk [2] => çetin [3] => mehmet [4] => şahin [5] => ziya )
 
Geri
Üst