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
?,?,?str_repeat
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
str_repeat
Референца за `function.str-repeat.php` со подобрена типографија и навигација.
str_repeat
(PHP 4, PHP 5, PHP 7, PHP 8)
str_repeat — Повтори стринг
= NULL
Патеката до PHP скриптата што треба да се провери. string repeated
times times.
Параметри
string-
Стрингот што треба да се повтори.
times-
Број на пати
stringстринг треба да се повтори.timesмора да биде поголем или еднаков на 0. Акоtimesе поставен на 0, функцијата ќе врати празен стринг.
Вратени вредности
Враќа повторен стринг.
Примери
Пример #1 str_repeat() example
<?php
echo str_repeat("-=", 10);
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
-=-=-=-=-=-=-=-=-=-=
Види Исто така
- for
- str_pad() - Пополни стринг до одредена должина со друг стринг
- substr_count() Враќа низа или цел број, во зависност од
Белешки од корисници 4 белешки
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.032104Here 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;
}
?>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 ...