31-01-2015 Saat: 22:47
PHP Kod:
function yaziylasayi($sayi) {
$o = array(
'birlik' => array('bir', 'iki', 'üç', 'dört', 'beş', 'altı', 'yedi', 'sekiz', 'dokuz'),
'onluk' => array('on', 'yirmi', 'otuz', 'kırk', 'elli', 'altmış', 'yetmiş', 'seksen', 'doksan'),
'basamak' => array('yüz', 'bin', 'milyon', 'milyar', 'trilyon', 'katrilyon')
);
// Sayıyı basamaklarına ayırıyoruz
$basamak = array_reverse(str_split(implode('', array_reverse(str_split($sayi))), 3));
// Basamak sayısını belirliyoruz
$basamak_sayisi = count($basamak);
// Her basamak için:
for($i=0; $i < $basamak_sayisi; ++$i) {
// Sayıyı basamaklarına ayırdığımızda basamaklar tersine döndüğü için burada ufak bir işlem ile basamakları düzeltiyoruz
$basamak[$i] = implode(array_reverse(str_split($basamak[$i])));
// Eğer basamak 4, 8, 15, 16, 23, 42 gibi 1 veya 2 rakamlıysa başına 3 rakama tamamlayacak şekilde "0" ekliyoruz ki foreach döngüsünde problem olmasın
if(strlen($basamak[$i]) == 1)
$basamak[$i] = '00' . $basamak[$i];
elseif(strlen($basamak[$i]) == 2)
$basamak[$i] = '0' . $basamak[$i];
}
$yenisayi = array();
// Her basamak için: ($yenisayi değişkenine)
foreach($basamak as $k => $b) {
// basamağın ilk rakamı 0'dan büyük ise
if($b[0] > 0)
// değişkene rakamın harfle yazılışı ve "yüz" ekliyoruz
$yenisayi[] = ($b[0] > 1 ? $o['birlik'][$b[0]-1] . ' ' : '') . $o['basamak'][0];
// basamağın 2. rakamı 0'dan büyük ise
if($b[1] > 0)
// değişkene rakamın harfle yazılışını ekliyoruz
$yenisayi[] = $o['onluk'][$b[1]-1];
// basamağın 3. rakamı 0'dan büyük ise
if($b[2] > 0)
// değişkene rakamın harfle yazılışını ekliyoruz
$yenisayi[] = $o['birlik'][$b[2]-1];
// değişkene basamağın ismini (bin, milyon, milyar) ekliyoruz
if($basamak_sayisi > 1)
$yenisayi[] = $o['basamak'][$basamak_sayisi-1];
// Basamak sayısını azaltıyoruz ki her basamağın sonuna ilkinde ne yazıyorsa o yazılmasın
--$basamak_sayisi;
}
return implode(' ', $yenisayi);
}
PHP Kod:
yaziylasayi('14');
PHP Kod:
on dört