您的位置:首页 > 编程语言 > PHP开发

php小写金额转大写

2014-09-19 13:19 141 查看
      public static function amountInWords($num) {

        if ( empty($num) || !is_numeric($num))

            return "";

        $return = "";

        $unit = array("分", "角", "圆", "整");

        $dw = array("", "拾", "佰", "仟", "", "万", "亿", "兆");

        $char = array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖");

        preg_match_all("/(\d*)\.?(\d*)/", $num, $ar);

        if (intval($ar[2][0]) > 0) {

            $return .= $ar[2][0][0] == 0 ? "" : $char[$ar[2][0][0]] . $unit[1];

            if (isset($ar[2][0][1])) {

                if (empty($return) && $ar[1][0] > 0)

                    $return = $char[0] . $char[$ar[2][0][1]] . $unit[0];

                else

                    $return .= $char[$ar[2][0][1]] . $unit[0];

            }

        }else{

            $return .= $unit[3];

        }

        if ($ar[1][0] != "") {

            $str = strrev($ar[1][0]);

            $len = strlen($str);

            for ($i = 0; $i < $len; $i++) {

                $out[$i] = $char[$str[$i]];

                $out[$i] .= $str[$i] != "0"? $dw[$i%4] : "";

                if (($i-1 >= 0) && ($str[$i] + $str[$i-1] == 0))

                    $out[$i] = "";

                if ($i%4 == 0)

                    $out[$i] .= $dw[4+floor($i/4)];

                if ($out[$i] == "零万")

                    $out[$i] = "万零";

            }

            if ($out[0] == "零")

                unset($out[0]);

            $left = join("", array_reverse($out));

            if (!empty($left))

                $return = $left . $unit[2] . $return;

        }

        return $return;

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php