<?php

function numeroALetras($numero) {
    $de = array(0 => '', 1 => 'un ', 2 => 'dos ', 3 => 'tres ', 4 => 'cuatro ', 5 => 'cinco ', 6 => 'seis ', 7 => 'siete ', 8 => 'ocho ', 9 => 'nueve ');
    $diez = array(10 => 'diez ', 11 => 'once ', 12 => 'doce ', 13 => 'trece ', 14 => 'catorce ', 15 => 'quince ', 16 => 'dieciséis ', 17 => 'diecisiete ', 18 => 'dieciocho ', 19 => 'diecinueve ');
    $decenas = array(2 => 'veinte ', 3 => 'treinta ', 4 => 'cuarenta ', 5 => 'cincuenta ', 6 => 'sesenta ', 7 => 'setenta ', 8 => 'ochenta ', 9 => 'noventa ');

    $centavos = '';
    if (strpos($numero, '.') !== false) {
        list($entero, $decimales) = explode('.', $numero, 2);
        $numero = (int) $entero;

        if ($decimales > 0) {
            $decimales = (int) $decimales;
            if ($decimales >= 1 && $decimales <= 9) {
                $centavos = 'con ' . $de[$decimales] . 'céntimos';
            } else if ($decimales == 10) {
                $centavos = 'con diez céntimos';
            } else {
                $decena = floor($decimales / 10);
                $unidad = $decimales % 10;
                $centavos = 'con ';
                if ($decena > 2) {
                    $centavos .= $decenas[$decena];
                } elseif ($decena == 2) {
                    $centavos .= 'veinte'. ' céntimos';
                }
                if ($unidad > 0) {
                    $centavos .= 'y ' . $de[$unidad] . ' céntimos';
                }
            }
        }
    }

    $letras = '';

    if ($numero == 0) {
        $letras = 'cero ';
    } elseif ($numero < 10) {
        $letras = $de[$numero];
    } elseif ($numero < 20) {
        $letras = $diez[$numero];
    } else {
        $unidades = $numero % 10;
        $decenasCalculadas = floor($numero / 10);
     $letras = $decenasCalculadas >= 2 ? $decenas[$decenasCalculadas] . ' ' : '';

        if ($unidades > 0) {
            $letras .= 'y ' . $de[$unidades];
        }
    }

    if (!empty($centavos)) {
        $letras .= 'soles ';
        if (strpos($centavos, 'diez') === 0) {
            $letras .= $centavos;
        } else {
            $letras .= $centavos;
        }
    } else {
        $letras .= 'nuevos soles';
    }
    
    return $letras;
}




?>