PHP Conference Japan 2024

str_repeat

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

str_repeat重复字符串

描述

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

返回重复 times 次的 string

参数

string

要重复的字符串。

times

应重复 string 字符串的次数。

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

返回值

返回重复的字符串。

示例

示例 #1 str_repeat() 示例

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

以上示例将输出

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

参见

添加注释

用户贡献的注释 4 条注释

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";

// 例如,这在对数组进行 count() 并将其用于 SQL 查询(例如 '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;
}
?>
匿名用户
13 年前
大家好,
我遇到了这个例子
<?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_* 包以确保一切正常……
To Top