phpcpu-wordcounterincrementordinals

PHP: increment counter function using words (i.e. First, Second, Third, etc.. )


I've been trying to find a function which increments a counter using words. I know its possible using numbers with suffixes (i.e. 1st, 2nd, 3rd and so on). Here is a snippet of the code i've got:

function addOrdinalNumberSuffix($num) {
    if (!in_array(($num % 100),array(11,12,13))){
        switch ($num % 10) {
            // Handle 1st, 2nd, 3rd
            case 1:  return $num.'st';
            case 2:  return $num.'nd';
            case 3:  return $num.'rd';
        }
    }
    return $num.'th';
}

Code Source

But is there a way to replicate this with words (i.e First, Second, Third, etc..)?

I'd expect it to be quite difficult (but not impossible) to create an infinite counter, but anything up to 20 would suffice.

Any help would be much appreciated.


Solution

  • There is a class from PEAR package can do that:

    <?php
    
    // include class
    include("Numbers/Words.php");
    
    // create object
    $nw = new Numbers_Words();
    
    // convert to string
    echo "600 in words is " . $nw->toWords(600);
    
    ?>
    

    Source.