Number To Words Convert in Laravel - WebJourney

Number To Words Convert in Laravel - WebJourney

Today we will learn about number to word convertion. I will show you how to convert a number into words using laravel 10. But you can user any laravel versions. I will share you a simple solution to convert any number into words using a single helper function.

 

 

Let's see the output first:

number to word in laravel

 

 

 

To convert numbers to words in Laravel, you can follow these steps:

 

 

Step-1: Install Laravel

 

To install a new laravel app run the following code:

composer create-project laravel/laravel number-to-word

 

 

 

Step-2: Create NumberToWordHelper

 

Now create a Helper folder inside app folder. After that create a NumberToWordHelper file inside newly created Helper folder. Once the helper is created update the compser.json file to include the helper file.

 

composer.json

 "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Factories\\": "database/factories/",
            "Database\\Seeders\\": "database/seeders/"
        },
        "files": [
            "app/Helpers/NumberToWordHelper.php"
        ]
    },

 

So execute the bellow artisan autoload command to load class files:

composer dump-autoload

 

 

 

Step-3: Update NumberToWordHelper.php

 

In his step we will create a helper function and write logic for the number to word convertion. Just update the helper with the given code.

 

NumberToWordHelper.php

<?php


function convertNumber($number)
{
    $num  = ( string ) ( ( int ) $number );

    if( ( int ) ( $num ) && ctype_digit( $num ) )
    {
        $words  = array( );

        $num    = str_replace( array( ',' , ' ' ) , '' , trim( $num ) );

        $list1  = array('','one','two','three','four','five','six','seven',
            'eight','nine','ten','eleven','twelve','thirteen','fourteen',
            'fifteen','sixteen','seventeen','eighteen','nineteen');

        $list2  = array('','ten','twenty','thirty','forty','fifty','sixty',
            'seventy','eighty','ninety','hundred');

        $list3  = array('','thousand','million','billion','trillion',
            'quadrillion','quintillion','sextillion','septillion',
            'octillion','nonillion','decillion','undecillion',
            'duodecillion','tredecillion','quattuordecillion',
            'quindecillion','sexdecillion','septendecillion',
            'octodecillion','novemdecillion','vigintillion');

        $num_length = strlen( $num );
        $levels = ( int ) ( ( $num_length + 2 ) / 3 );
        $max_length = $levels * 3;
        $num    = substr( '00'.$num , -$max_length );
        $num_levels = str_split( $num , 3 );

        foreach( $num_levels as $num_part )
        {
            $levels--;
            $hundreds   = ( int ) ( $num_part / 100 );
            $hundreds   = ( $hundreds ? ' ' . $list1[$hundreds] . ' Hundred' . ( $hundreds == 1 ? '' : 's' ) . ' ' : '' );
            $tens       = ( int ) ( $num_part % 100 );
            $singles    = '';

            if( $tens < 20 ) { $tens = ( $tens ? ' ' . $list1[$tens] . ' ' : '' ); } else { $tens = ( int ) ( $tens / 10 ); $tens = ' ' . $list2[$tens] . ' '; $singles = ( int ) ( $num_part % 10 ); $singles = ' ' . $list1[$singles] . ' '; } $words[] = $hundreds . $tens . $singles . ( ( $levels && ( int ) ( $num_part ) ) ? ' ' . $list3[$levels] . ' ' : '' ); } $commas = count( $words ); if( $commas > 1 )
    {
        $commas = $commas - 1;
    }

        $words  = implode( ', ' , $words );

        $words  = trim( str_replace( ' ,' , ',' , ucwords( $words ) )  , ', ' );
        if( $commas )
        {
            $words  = str_replace( ',' , ' and' , $words );
        }
    }else if( ! ( ( int ) $num ) ){
        $words = 'Zero';
    }else{
        $words = '';
    }

    return $words;
}

 

 

 

Step-4: Update welcome.php

 

Here we will call the helper function convertNumber() and pass any number in function argument and the number will automatically change to words.

 

welcome.php


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>How to convert number to word in Laravel 10</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>

<body>
<div class="container mt-5">
    <div class="row">
        <div class="offset-md-2 col-md-8">
            <h4 class="text-success text-center mb-5">How to convert number to word in Laravel 10</h4>
            <table class="table table-bordered">
                <thead>
                <tr>
                    <td>Number</td>
                    <td>Word</td>
                </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>$99</td>
                        <td>{{ convertNumber(99) }}</td>
                    </tr>
                    <tr>
                        <td>$120</td>
                        <td>{{ convertNumber(120) }}</td>
                    </tr>
                    <tr>
                        <td>$8796</td>
                        <td>{{ convertNumber(8796) }}</td>
                    </tr>
                    <tr>
                        <td>$698099</td>
                        <td>{{ convertNumber(698099) }}</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

 

 

 

Step-5: Test App

 

Run the artisan serve command and hit url to test the app

php artisan serve

 

Paste the url in thebrowser and hit enter:

http://127.0.0.1:8000/

 

 

Hope this will help you alot.

 

 

 

If you like what you are reading, please think about buying us a coffee as a token of appreciation.

Buy Me A Coffee

We appreciate your support and are committed to providing you useful and informative content.

We are thankful for your ongoing support 

 

 

 

 

 

You May Read Bellow Articles:

 

 

Laravel 9 live search data in a table using ajax. 

 

How to send SMS in laravel 9 using Twilio SMS API-Webjourney

 

Laravel 9 pdf invoice generate and download with barryvdh dompdf

 

How to create multi language website by laravel 9

 

Laravel 10 multiple form validation on the same page-WebJourney

 

 Laravel 10 Breeze Authentication - WebJourney

 

Laravel 10 Ajax jQuery Crud with Pagination and Live Search

 

Laravel Naming Conventions Accepted by Laravel community

 

Laravel Shorter and More Readable Syntax - WebJourney

Tags

  • Share This: