phpday 2025 - Call For Papers

str_repeat

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

str_repeatWiederholt einen String

Beschreibung

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

Gibt string times mal wiederholt zurück.

Parameter-Liste

string

Die zu wiederholende Zeichenkette.

times

Die Anzahl der Wiederholungen, die auf string angewendet werden sollen.

times muss größer als oder gleich 0 sein. Wenn times den Wert 0 hat, gibt die Funktion einen leeren String zurück.

Rückgabewerte

Gibt die wiederholte Zeichenkette zurück.

Beispiele

Beispiel #1 str_repeat()-Beispiel

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

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

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

Siehe auch

  • for
  • str_pad() - Erweitert einen String unter Verwendung eines anderen Strings auf eine bestimmte Länge
  • substr_count() - Ermittelt, wie oft eine Zeichenkette in einem String vorkommt

add a note

User Contributed Notes 4 notes

up
42
Damien Bezborodov
15 years ago
Here is a simple one liner to repeat a string multiple times with a separator:

<?php
implode
($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
6 years ago
http://php.net/manual/en/function.str-repeat.php#90555

Damien Bezborodov , yeah but execution time of your solution is 3-5 times worse than str_replace.

<?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
up
0
claude dot pache at gmail dot com
15 years ago
Here is a shorter version of Kees van Dieren's function below, which is moreover compatible with the syntax of str_repeat:

<?php
function 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