我最近不得不重复一次字符串n次以匹配另一个字符串的长度。问题是我的乘数是一个浮点数,而str_repeat只接受整数。
更准确地说,我有一个字母表中所有小写和大写字母的字符串(strlen:52),并且必须匹配包含0-9(strlen:10)中数字的字符串的长度。
由于我之前做过一些研究,但找不到我想要的答案,我将分享我的Q& A风格的功能。
答案 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