str_repeat

(PHP 4, PHP 5, PHP 7, PHP 8)

str_repeat重复字符串

说明

str_repeat(string $string, int $times): string

返回 string 重复 times 次。

参数

string

要重复的字符串。

times

要重复 string 字符串的次数。

times 必须大于或等于 0。如果 times 设置为 0,则函数将返回空字符串。

返回值

返回重复的字符串。

示例

示例 #1 str_repeat() 示例

<?php
echo str_repeat("-=", 10);
?>

以上示例将输出

-=-=-=-=-=-=-=-=-=-=

参见

添加备注

用户贡献的备注 5 备注

Damien Bezborodov
15 年前
以下是一行代码,使用分隔符多次重复一个字符串

<?php
implode
($separator, array_fill(0, $multiplier, $input));
?>

示例脚本
<?php

// 我喜欢使用标准 PHP 函数重复字符串的方式
$input = 'bar';
$multiplier = 5;
$separator = ',';
print
implode($separator, array_fill(0, $multiplier, $input));
print
"\n";

// 例如,这在对我们要在 SQL 查询中使用的数组执行 count() 时非常有用,例如 'WHERE foo IN (...)'
$args = array('1', '2', '3');
print
implode(',', array_fill(0, count($args), '?'));
print
"\n";
?>

示例输出
bar,bar,bar,bar,bar
?,?,?
Alexander Ovsiyenko
6 年前
https://php.net/manual/en/function.str-repeat.php#90555

Damien Bezborodov,是的,但是你的解决方案的执行时间比 str_replace 差 3-5 倍。

<?php

function spam($number) {
return
str_repeat('test', $number);
}

function
spam2($number) {
return
implode('', array_fill(0, $number, 'test'));
}

//echo spam(4);
$before = microtime(true);
for (
$i = 0; $i < 100000; $i++) {
spam(10);
}
echo
microtime(true) - $before , "\n"; // 0.010297
$before = microtime(true);
for (
$i = 0; $i < 100000; $i++) {
spam2(10);
}
echo
microtime(true) - $before; // 0.032104
claude dot pache at gmail dot com
15 年前
以下是 Kees van Dieren 下面函数的简短版本,并且与 str_repeat 的语法兼容

<?php
function str_repeat_extended($input, $multiplier, $separator='')
{
return
$multiplier==0 ? '' : str_repeat($input.$separator, $multiplier-1).$input;
}
?>
匿名
12 年前
嗨,大家好,
我遇到了这个例子
<?php

$my_head
= str_repeat("°~", 35);
echo
$my_head;

?>

所以,长度应该是 35x2 = 70!!!
如果我们回显它

<?php
$my_head
= str_repeat("°~", 35);
echo
strlen($my_head); // 105
echo mb_strlen($my_head, 'UTF-8'); // 70
?>

注意字符,并尝试使用 mb_* 包以确保一切正常...
匿名
21 年前
str_repeat 在某些(可能是所有?)系统上无法重复代码为 0 的符号(在 PHP 版本 4.3.2、FreeBSD 4.8-STABLE i386 上测试)。

使用 <pre>
while(strlen($str) < $desired) $str .= chr(0);
</pre> 以零符号填充字符串。
To Top