PHP 编写函数实现千位分组

这个,其实PHP还是有自带函数的,number_format()
扩展阅读:http://www.w3school.com.cn/php/func_string_number_format.asp

不过有的时候我真的是太依赖自带函数了,可能其他语言没那么强大的函数库就死了吧,所以这里还是需要动动脑子的,正好弥补代码量不足的问题。

缺点在于:小数死……(这个缺点有空修复好了= =目前正在赶进度……)

演示

先来核心函数

        function format($num) {
            $result = '';

            while(strlen($num) > 3) {    //当输入字符串长度大于3时
                $result = ',' . substr($num, -3, 3) . $result;
                $num = substr($num, 0, -3);
            } 

            $result = $num . $result;
            return $result;

        }

使用strlen()来判断字符串长度(因为input输出的是字符串形式)

我们这里还是使用substr()来截取字符串
扩展阅读:http://www.php.net/substr

然后拼接。

完整版代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Number Format</title>
</head>
<body>
    <form action="format.php" method="post">
        <input type="text" placeholder="输入Number" name="number">
        <input type="hidden" name="shot" value="shot">
        <input type="submit" value="提交">
    </form>

    <?php
        if(!empty($_POST['shot'])) {
            $num = $_POST['number'];
            $problem = FALSE;

            if(!is_numeric($num)) {
                $problem = TRUE;
                echo "你确定你输入的数字吗";
            }

            if(!$problem) {
                $result = format($num);

                echo "转换后的数据为" .$result;
            }
        }

        function format($num) {
            $result = '';

            while(strlen($num) > 3) {    //当输入字符串长度大于3时
                $result = ',' . substr($num, -3, 3) . $result;
                $num = substr($num, 0, -3);
            } 

            $result = $num . $result;
            return $result;

        }
    ?>
</body>
</html>

这里我们用is_numeric()判断是否是数字或者数字字符串(因为是字符串不能用诸如is_int之类的)
扩展阅读:http://www.php.net/manual/zh/function.is-numeric.php

植入部分

如果您觉得文章不错,可以通过赞助支持我。

如果您不希望打赏,也可以通过关闭广告屏蔽插件的形式帮助网站运作。

标签: 成品, 源码, 代码段

添加新评论