今天遇到個php中數字轉大寫的小需求,就是將數字'0123'轉成"零一二三",一開始以為php中有實現此需求的內置函數,結果查了半天沒找到,就索性自已寫一個吧。注意,這里只是實現單個數字與之對應的大寫或漢字的轉換方式,并不是轉成多少千多少百的那種數字的轉換方式。

php 將數字123轉成一二三的方法

国产视频app我們可以用數組來實現這一功能,代碼如下:

php代碼示例:

<?php
$a = 9;
$arr = array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九');
echo $arr[$a];
// 九
?>

上面的代碼只能實現一個不超過9的正整數進行轉換,但如果是一串長長的數字該如何轉換呢?

php中阿拉伯數字轉大寫的方法

国产视频app下面給出兩個可以處理數字字符串的示例,大家可根據自己的需求使用吧!

示例1:

自定義一個php函數

<?php
function intTostr($num) {
    // 判斷是否為數組
    if(!is_numeric($num)){
        return "要轉換的金額只能為數字!";
    }
    // 預定義要轉換的字符,自己可以切換一下要轉換的方式
    // $arr = array('零', '壹', '貳', '叁', '肆', '伍', '陸', '柒', '捌', '玖');
    $arr = array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九');
    $result = null;
    //獲取字符串的長度 feiniaomy.com
    $integerArrLength = strlen($num);
    //開始轉化
    for($i = 0; $i < $integerArrLength; $i++) {
        $result .= $arr[$num[$i]];
    }
    return $result;
}
?>

函數調用

<?php
echo intTostr('01123123456');
//零一一二三一二三四五六
?>

示例2:

<?php
$num = '056445678';
$toarr = array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九');
$arr = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
echo str_replace($arr,$toarr,$num);
// 零五六四四五六七八
?>