normalde çalışıyor ama kusuratlı rakamlar oldugu takdirde kusuratları vermiyor sizce ne yapabilirim?

function yaziylasayi($sayi) { 
    $o = array( 
        'birlik' => array('BİR', 'İKİ', 'ÜÇ', 'DÖRT', 'BEŞ', 'ALTI', 'YEDİ', 'SEKİZ', 'DOKUZ'), 
        'onluk' => array('ON', 'YİRMİ', 'OTUZ', 'KIRK', 'ELLİ', 'ALTMIŞ', 'YETMİŞ', 'SEKSEN', 'DOKSAN'), 
        'basamak' => array('YÜZ', 'BİN', 'MİLYON', 'MİLYAR', 'TRİLYON', 'KATRİLYON') 
    ); 

    // 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); 
}