• 09-12-2010, 10:49:15
    #1
    Merhaba arkadaşlar UTF-8 ile afabetik sıralama yapıyorum.

    Kodlar:
    <?php
    setlocale(LC_ALL,'turkish');
    $dizi = array('A','B','C','Ç','D','E','F','G','H','I','İ','J','K','L','M','N','O','Ö','P','Q','R','S','Ş','T','U','Ü','V','W','X','Y','Z');
    sort($dizi,SORT_LOCALE_STRING);
    foreach ($dizi as $value) {
        echo $value." - ";
    }
    ?>
    Listeleme yaptıgımda
    A - Ö - İ - Ç - Ş - Ü - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z -
    a dan sonra Ö İ geliyor. Bunu nasıl çözebilirim?
  • 09-12-2010, 12:44:02
    #2
    For each ile değil, for ile kur döngünü. Böylece sıralama senin yazdığın şekilde olur.
    $dizi = array('A','B','C','Ç','D','E','F','G','H','I','İ','J','K','L','M','N','O','Ö','P','Q','R','S','Ş','T','U','Ü','V','W','X','Y','Z');
    for($i = 0; $i < 31; $i++){
    echo $dizi[$i]." - ";
    }
  • 09-12-2010, 14:06:19
    #3
    digiklan evet dedigin mantıklı.
    Benim yaptıgım biraz daha uzun yolu ve utf-8 de sorun cıkartan yöntemi normal 8859 da sorun cıkartmıyordu rastgele harfleri yazsamda.
    Teşekkurler