How to display Currency in Indian Numbering Format in PHP

后端 未结 22 2019
一整个雨季
一整个雨季 2020-12-01 06:14

I have a question about formatting the Rupee currency (Indian Rupee - INR).

For example, numbers here are represented as:

1
10
100
1,000
10,000
1,00,00         


        
22条回答
  •  遥遥无期
    2020-12-01 07:14

    If you dont want to use any inbuilt function in my case i was doing on iis server so was unable to use one the function in php so did this

    $num = -21324322.23;
    
    
    moneyFormatIndiaPHP($num);
    function moneyFormatIndiaPHP($num){
        //converting it to string 
        $numToString = (string)$num;
    
        //take care of decimal values
        $change = explode('.', $numToString);
    
        //taking care of minus sign
        $checkifminus =  explode('-', $change[0]);
    
    
        //if minus then change the value as per
        $change[0] = (count($checkifminus) > 1)? $checkifminus[1] : $checkifminus[0];
    
        //store the minus sign for further
        $min_sgn = '';
        $min_sgn = (count($checkifminus) > 1)?'-':'';
    
    
    
        //catch the last three
        $lastThree = substr($change[0], strlen($change[0])-3);
    
    
    
        //catch the other three
        $ExlastThree = substr($change[0], 0 ,strlen($change[0])-3);
    
    
        //check whethr empty 
        if($ExlastThree != '')
            $lastThree = ',' . $lastThree;
    
    
        //replace through regex
        $res = preg_replace("/\B(?=(\d{2})+(?!\d))/",",",$ExlastThree);
    
        //main container num
        $lst = '';
    
        if(isset($change[1]) == ''){
            $lst =  $min_sgn.$res.$lastThree;
        }else{
            $lst =  $min_sgn.$res.$lastThree.".".$change[1];
        }
    
        //special case if equals to 2 then 
        if(strlen($change[0]) === 2){
            $lst = str_replace(",","",$lst);
        }
    
        return $lst;
    }
    

提交回复
热议问题