PHP Conference Japan 2024

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 требует значения, которое больше или равно нулю. Функция вернёт пустую строку, если параметр times равен нулю.

Возвращаемые значения

Функция возвращает повторённую строку.

Примеры

Пример #1 Пример использования функции str_repeat()

<?php

echo str_repeat("-=", 10);

?>

Результат выполнения приведённого примера:

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

Смотрите также

  • for
  • str_pad() - Дополняет строку другой строкой до заданной длины
  • substr_count() - Возвращает число вхождений подстроки

Добавить

Примечания пользователей 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