str_repeat

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

str_repeat文字列を反復する

説明

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

stringtimes 回を繰り返した文字列を返します。

パラメータ

string

繰り返す文字列。

times

string を繰り返す回数。

times は 0 以上でなければなりません。 times が 0 に設定された場合、この関数は空文字を返します。

戻り値

繰り返した文字列を返します。

例1 str_repeat() の例

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

上の例の出力は以下となります。

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

参考

add a note

User Contributed Notes 4 notes

up
42
Damien Bezborodov
16 years ago
Here is a simple one liner to repeat a string multiple times with a separator:<?phpimplode($separator, array_fill(0, $multiplier, $input));?>Example script:<?php// How I like to repeat a string using standard PHP functions$input = 'bar';$multiplier = 5;$separator = ',';print implode($separator, array_fill(0, $multiplier, $input));print "\n";// Say, this comes in handy with count() on an array that we want to use in an// SQL query such as 'WHERE foo IN (...)'$args = array('1', '2', '3');print implode(',', array_fill(0, count($args), '?'));print "\n";?>Example Output:bar,bar,bar,bar,bar?,?,?
up
5
Alexander Ovsiyenko
7 years ago
http://php.net/manual/en/function.str-repeat.php#90555Damien Bezborodov , yeah but execution time of your solution is 3-5 times worse than str_replace.<?phpfunction 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
up
0
claude dot pache at gmail dot com
16 years ago
Here is a shorter version of Kees van Dieren's function below, which is moreover compatible with the syntax of str_repeat:<?phpfunction str_repeat_extended($input, $multiplier, $separator=''){    return $multiplier==0 ? '' : str_repeat($input.$separator, $multiplier-1).$input;}?>
up
-1
Anonymous
13 years ago
hi guys , 
i've faced this example :
<?php

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

?>

so , the length should be 35x2 = 70 !!!
if we echo it :

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

be carefull with characters and try to use mb_* package to make sure everything goes well ...
To Top