Hi,
Is there a function that automatically converts an integer into a string. For instance, I have 'echo($length)' returning an integer 5 but want to display the figure as 'five'. Any advice?

    Altho STFW springs to mind 😉 I found this for you that should help you get started:

    Numeric Currency to Alpha Word Value String
    Submitted by: Wayne Herbert - June 3rd, 2003

    <?php
    
    //*************************************************************
    // this function converts an amount into alpha words
    // with the words dollars and cents.  Pass it a float.
    // Example:  $3.77 = Three Dollars and Seventy Seven Cents
    // works up to 999,999,999.99 dollars - Great for checks
    //*************************************************************
    
    function makewords($numval)
    {
    $moneystr = "";
    // handle the millions
    $milval = (integer)($numval / 1000000);
    if($milval > 0)
      {
      $moneystr = getwords($milval) . " Million";
      }
    
    // handle the thousands
    $workval = $numval - ($milval * 1000000); // get rid of millions
    $thouval = (integer)($workval / 1000);
    if($thouval > 0)
      {
      $workword = getwords($thouval);
      if ($moneystr == "")
        {
        $moneystr = $workword . " Thousand";
        }
      else
        {
        $moneystr .= " " . $workword . " Thousand";
        }
      }
    
    // handle all the rest of the dollars
    $workval = $workval - ($thouval * 1000); // get rid of thousands
    $tensval = (integer)($workval);
    if ($moneystr == "")
      {
      if ($tensval > 0)
        {
        $moneystr = getwords($tensval);
        }
      else
        {
        $moneystr = "Zero";
        }
      }
    else // non zero values in hundreds and up
      {
      $workword = getwords($tensval);
      $moneystr .= " " . $workword;
      }
    
    // plural or singular 'dollar'
    $workval = (integer)($numval);
    if ($workval == 1)
      {
      $moneystr .= " Dollar And ";
      }
    else
      {
      $moneystr .= " Dollars And ";
      }
    
    // do the pennies - use printf so that we get the
    // same rounding as printf
    $workstr = sprintf("%3.2f",$numval); // convert to a string
    $intstr = substr($workstr,strlen - 2, 2);
    $workint = (integer)($intstr);
    if ($workint == 0)
      {
      $moneystr .= "Zero";
      }
    else
      {
      $moneystr .= getwords($workint);
      }
    if ($workint == 1)
      {
      $moneystr .= " Cent";
      }
    else
      {
      $moneystr .= " Cents";
      }
    
    // done - let's get out of here!
    return $moneystr;
    }
    
    //*************************************************************
    // this function creates word phrases in the range of 1 to 999.
    // pass it an integer value
    //*************************************************************
    function getwords($workval)
    {
    $numwords = array(
      1 => "One",
      2 => "Two",
      3 => "Three",
      4 => "Four",
      5 => "Five",
      6 => "Six",
      7 => "Seven",
      8 => "Eight",
      9 => "Nine",
      10 => "Ten",
      11 => "Eleven",
      12 => "Twelve",
      13 => "Thirteen",
      14 => "Fourteen",
      15 => "Fifteen",
      16 => "Sixteen",
      17 => "Seventeen",
      18 => "Eightteen",
      19 => "Nineteen",
      20 => "Twenty",
      30 => "Thirty",
      40 => "Forty",
      50 => "Fifty",
      60 => "Sixty",
      70 => "Seventy",
      80 => "Eighty",
      90 => "Ninety");
    
    // handle the 100's
    $retstr = "";
    $hundval = (integer)($workval / 100);
    if ($hundval > 0)
      {
      $retstr = $numwords[$hundval] . " Hundred";
      }
    
    // handle units and teens
    $workstr = "";
    $tensval = $workval - ($hundval * 100); // dump the 100's
    if (($tensval < 20) && ($tensval > 0))// do the teens
      {
      $workstr = $numwords[$tensval];
      }
    else // got to break out the units and tens
      {
      $tempval = ((integer)($tensval / 10)) * 10; // dump the units
      $workstr = $numwords[$tempval]; // get the tens
      $unitval = $tensval - $tempval; // get the unit value
      if ($unitval > 0)
        {
        $workstr .= " " . $numwords[$unitval];
        }
      }
    
    // join all the parts together and leave
    if ($workstr != "")
      {
      if ($retstr != "")
        {
        $retstr .= " " . $workstr;
        }
      else
        {
        $retstr = $workstr;
        }
      }
    return $retstr;
    }
    
    $floatval = 42341.55;
    $myresult = makewords($floatval);
    echo "$myresult<br>";
    printf("The value is %0.2f<br>",$floatval);
    
    $floatval = 0.63;
    $myresult = makewords($floatval);
    echo "<br>$myresult<br>";
    printf("The value is %0.2f<br>",$floatval);
    
    $floatval = 1.00;
    $myresult = makewords($floatval);
    echo "<br>$myresult<br>";
    printf("The value is %0.2f<br>",$floatval);
    
    $floatval = 0.01;
    $myresult = makewords($floatval);
    echo "<br>$myresult<br>";
    printf("The value is %0.2f<br>",$floatval);
    
    $floatval = 76842341.55;
    $myresult = makewords($floatval);
    echo "<br>$myresult<br>";
    printf("The value is %0.2f<br>",$floatval);
    
    $floatval = 0.00;
    $myresult = makewords($floatval);
    echo "<br>$myresult<br>";
    printf("The value is %0.2f<br>",$floatval);
    
    $floatval = 11.04;
    $myresult = makewords($floatval);
    echo "<br>$myresult<br>";
    printf("The value is %0.2f<br>",$floatval);
    
    $floatval = 456.78;
    $myresult = makewords($floatval);
    echo "<br>$myresult<br>";
    printf("The value is %0.2f<br>",$floatval);
    
    $floatval = 76.97;
    $myresult = makewords($floatval);
    echo "<br>$myresult<br>";
    printf("The value is %0.2f<br>",$floatval);
    
    $floatval = 777777777.77;
    $myresult = makewords($floatval);
    echo "<br>$myresult<br>";
    printf("The value is %0.2f<br>",$floatval);
    ?>
    
    

    read it, change it, use it 😉

      Thanks for your reply FMB, that should do the trick.

        You should also search the forums here. I know Weedpacket(one of our senior members and a moderator) made one that handles very large numbers as well.

          Hey Lord 🙂

          // works up to 999,999,999.99 dollars

          Could you give me your definition of a very large number 😉 😃

          j/k

            Okay. I must be in holiday mode. Last night I flipped through Conway & Guy's The Book of Numbers, and noted they gave a table for the construction of "zillion" names - you know, when you have to come up with a new word ending with "illion" to deal with some big number. You start with "million", "billion", "trillion", but how many people are able to continue? Unabridged dictionaries might take you up as far as the twentieth zillion name - vigintillion - but conventional construction actually works up as far as the 999th zillion. Conway and Guy's table is implemented in the function zillion(), which includes the rules for inserting extra letters as needed to glue the various syllables together.

            I thought I'd implement it. Then I went to bed. This evening I thought "okay, I've got it sussed" and wrote the attached.

            To go beyond the 999th zillion (which happens to be "novenonagintanonagentillion") Conway & Guy mention a construction by some bloke named Allan Wechsler. That is also implemented below (in the function wechsler(), would you believe).

            http://phpbuilder.com/board/showthread.php?s=&threadid=10263559

              😃 o, you win 😉

              But still, hehe

                Write a Reply...