金额转换大写

金额转换大写

    public function trans_cn_num($num = '')
    {
        $num = round($num);
        if($num == 0)return '零元整';
        if($num > 999999999)return '钱太多无法计算';
        if(empty($num))return '';
        $num_cn[1]      = '壹';
        $num_cn[2]      = '贰';
        $num_cn[3]      = '叁';
        $num_cn[4]      = '肆';
        $num_cn[5]      = '伍';
        $num_cn[6]      = '陆';
        $num_cn[7]      = '柒';
        $num_cn[8]      = '捌';
        $num_cn[9]      = '玖';
        $num_cn[0]      = '零';

        $unit[1000000000]       = '亿';
        $unit[100000000]        = '仟';
        $unit[10000000]         = '佰';
        $unit[1000000]          = '拾';
        $unit[100000]           = '万';
        $unit[10000]            = '仟';
        $unit[1000]             = '佰';
        $unit[100]              = '拾';
        $unit[10]               = '';
        $str = '';

        foreach($unit as $k=>$v)
        {
            $_t     = $num % $k;//取位
            if($_t < ($k/10))//位数不够
            {
                if('' == $str)continue;//位数不够
                if(in_array($k,array(100000,100000)))
                {
                    //千万百万十万个万多为0
                    if(($num % 100000) < 10000 AND ($num % 1000000) < 100000 AND ($num % 10000000) < 1000000 AND ($num % 100000000) < 10000000)continue;
                    $str .= $unit[$k];
                    continue;
                }
                if($_t < ($k/100))continue;//上一位为0
                $str .= $num_cn[0];
                continue;
            }
            $_s = floor($_t / ($k/10));
            $str .= $num_cn[$_s].$unit[$k];
        }
        return $str.'元整';
    }