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

VicePrez picture VicePrez · May 24, 2011 · Viewed 10.8k times · Source

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.

Answer

SIFE picture SIFE · May 24, 2011

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.