تبدیل عدد به حروف در php

۱۲ اردیبهشت ۱۳۹۵ PHP

گاهی اوقات در پروژه ای نیاز به تبدیل عدد به حروف داریم .این یک تابع برای تبدیل عدد به حروف هست

مهمترین مزیتش هم سبک و کم حجم بودن اون هست که سرعت بالایی داره

 

function num2word($num)
{
    $num        = (string)$num;
    $one = array('','یک','دو','سه','چهار','پنج','شش','هفت','هشت','نه');
    $ten = array('','','بیست','سی','چهل','پنجاه','شصت','هفتاد','هشتاد','نود',);
    $hundred = array('','یکصد','دویست','سیصد','چهارصد','پانصد','ششصد','هفتصد','هشتصد','نهصد',);
    $categories = array('','هزار','میلیون','میلیارد','بیلیون','بیلیارد','تریلیون','تریلیارد','کوآدریلیون',);
    $exceptions = array('ده','یازده','دوازده','سیزده','چهارده','پانزده','شانزده','هفده','هجده','نوزده',);
    $out = '';
    $j   = 0;
    $cnt = strlen($num);
    if($cnt==1)
    return $one[$num];
    for($i=--$cnt;$i>=0;$i-=3){
        $add = '';
        $i1 = $num[$i];
        $i2 = isset($num[$i-1]) ? $num[$i-1] : '';
        $i3 = isset($num[$i-2]) ? $num[$i-2] : '';
        if(!empty($i3))
        $add .= $hundred[$i3].' و ';
        if($i2>1)
        $add .= $ten[$i2].' و '.$one[$i1].' ';
        elseif($i2==1)
        $add .= $exceptions[$i1].' ';
        else
        $add .= $one[$i1].' ';
        if($add!=' ')
        $add .= $categories[$j++].' و ';
        else
        $j++;
        $out = $add.$out;
    }
    return mb_substr($out,0,-4);
}

 

💬

شاید امروز جواب خیلی از سؤال‌ها را بتوان از AI گرفت، اما تولید مطالب تخصصی، تجربه‌محور و عمیق هنوز به انگیزه نیاز دارد. این نظرات و بازخوردهای شماست که به ما نشان می‌دهد ادامه دادن این مسیر ارزشمند است.

دیدگاه شما چیست؟

نظرات (9)

eh.rasta
۱۲ دی ۱۳۹۶

سلام با تشکر ولی ایراد داره ۹۹ رو نهصد و نود ونه میگه و ۹ رو نود و نه میگه

حسن زاده
۳۰ مهر ۱۳۹۷

ممنون

armin
۱۷ آذر ۱۳۹۷

تشکر بابت اشتراک گذاری کد
خوب کار میکنه فقط باید یک دیباگ روی اعدادی که طولشون مضرب ۳ نیست بشه.

ali
۴ اسفند ۱۳۹۷

سلام تابعی که نوشتید ایراد داره

‌A1Gard
۷ اسفند ۱۳۹۷

اگر ایرادی پیدا میکنین بفرمایید تا اصلاح شود

تاروت رنگی
۹ اسفند ۱۳۹۸

سلام. تابع ارور میده لطفا بررسی کنید.

‌A1Gard
۹ فروردین ۱۳۹۹

درست است بارها استفتاده بررسی شده

مسعود مهدیان
۲۹ دی ۱۴۰۱

سلام
لطفاً کدای باگ دار نزارید

‌A1Gard
۲ فروردین ۱۴۰۲

کد در زمان انتشار php 5.x بوده و باگی نداشته


ارسال نظر

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

عضویت در شبکه‌های اجتماعی

جدیدترین مقالات و نکات برنامه‌نویسی را سریع تر از دیگران مطلع شوید.