生成固定长度的某字符的字符串 PHP

10 篇文章 0 订阅
10 篇文章 0 订阅

在编程时,有时候会需要生成固定长度的空格或者特殊字符,以用于数据对齐等。

今天讨论用php生成固定长度的某字符的字符串的一些方法。

 

方法一:二倍迭代拼接

 

function getchars($c,$length){
        $binchars = decbin($length);
        $binchars_arr = str_split($binchars);
        $ret="";
        $char=$c;
        for($i=strlen($binchars)-1;$i>=0;$i--){
                $binchars_arr[$i]=="1" && $ret=$ret.$char;
                $char=$char.$char;
        }
        return $ret;
}

 受到方法一的启发,每次拼接三倍长度的字符,得到方法而。

 

方法二:三倍迭代拼接

 

function getchars_t($c,$length){
        $binchars = base_convert($length,10,3);
        $binchars_arr = str_split($binchars);
        $ret="";
        $char=$c;
        for($i=strlen($binchars)-1;$i>=0;$i--){
                $binchars_arr[$i]=="1" && $ret=$ret.$char;
                $binchars_arr[$i]=="2" && $ret=$ret.$char.$char;
                $char=$char.$char.$char;
        }
        return $ret;
}

 

方法三:php函数str_repeat

 

function getchars_p($c,$length){
        return str_repeat($c,$length);
}

 

方法四:php函数,间接运算

 

function getcharscmp($c,$length){
        $char="`123~!@#";
        return substr(str_pad($char,strlen($char)+$length,$c),strlen($char));
}

 

方法五:php函数,字符串格式化

 

function getchars_s($c,$length){
        $a = sprintf("%".$length."s"," ");
        $a = str_replace(" ",$c,$a);
        return $a;
}

 

 

然后,对上述五种方法进行效能测试,执行15000000次生成4个空格字符串的时间如下,单位为“秒”:

                      getchars  :  6.7469990253448
                    getchars_t  :  7.7568290233612
                    getchars_p  :  1.4614100456238
                   getcharscmp  :  3.2170360088348
                    getchars_s  :  4.1925320625305

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值