Bir çok kez karşıma çıkan ve projelerimde kullandığım Türkçe kelimeleri alfabetik olarak sıralama fonksiyonunu bulmuştum. Bunu sizinle paylaşmak istedim.
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
$array = array('ahmet', 'mehmet', 'şahin', 'çetin', 'cenk', 'ziya'); usort($array, "turkce_sirala"); print_r($array);
Sonuç olarak çıktımız
Array ( [0] => ahmet [1] => cenk [2] => çetin [3] => mehmet [4] => şahin [5] => ziya )
olacaktır. Yararlı olması dileğiyle.
İbrahim Bey ben bu kodları kategorilerimde alfabetik sıralamaya uygulayamadım.
Yardımcı olabilirmisiniz.
kategoriler:
1-id
2-kategori
Merhabalar Nevzat Bey,
Kategorileri bir array içine atıp oradan sıralamayı tekrar deneyebilirsiniz.
Yardımcı olmamı isterseniz bana kategori listenizi ve kodlarınızı gönderebilirseniz, oradan daha hızlı cevap verebilirim.
Kodlar bunlar:
‘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
$sorgu1 = mysql_query(“select * from firmakat order by kategori asc”);
while($gelen1 = mysql_fetch_array($sorgu1)){
usort($sorgu1, “turkce_sirala”);
İlk kotlar çıkmadı sadece burasında hata yapıyorum
$yeniarray = array();
while($gelen1 = mysql_fetch_array($sorgu1)){
$yeniarray[]=$gelen1[‘kategori’];
}
yaptıktan sonra
usort($yeniarray, “turkce_sirala”);
print_r($yeniarray);
olarak deneyebilirsiniz. Sorun çözülmez ise bana telden ulaşabilirsiniz.