如何在使用浮点数作为乘数时重复字符串

时间:2017-09-12 09:05:03

标签: php floating-point str-replace

我最近不得不重复一次字符串n次以匹配另一个字符串的长度。问题是我的乘数是一个浮点数,而str_repeat只接受整数。

更准确地说,我有一个字母表中所有小写和大写字母的字符串(strlen:52),并且必须匹配包含0-9(strlen:10)中数字的字符串的长度。

由于我之前做过一些研究,但找不到我想要的答案,我将分享我的Q& A风格的功能。

1 个答案:

答案 0 :(得分:2)

要将字符串n次乘以浮点数作为乘数,您需要做一些基本的数学运算。以下是我提出的建议:

function str_repeat_float($str, $m){
    $f = floor($m);
    $d = $m - $f;
    $l = strlen($str);
    $p = floor($d * $l);
    $r_str = str_repeat($str, $f);
    $s_str = substr($str, 0, $p);
    return $r_str.$s_str;
}
echo str_repeat_float('1234567890', 5.2);
// 1234567890123456789012345678901234567890123456789012