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 4, PHP 5)
str_repeat — Répète une chaîne
Description
string str_repeat
( string $input
, int $multiplier
)
Retourne la chaîne input répétée multiplier fois.
Liste de paramètres
- input
-
La chaîne à répéter.
- multiplier
-
Nombre de fois où la chaîne input doit être multipliée.
multiplier doit être positif ou nul. Si multiplier vaut 0, la fonction retourne la chaîne vide.
Valeurs de retour
Retourne la chaîne, répétée multiplier fois.
Exemples
Exemple #1 Exemple avec str_repeat()
<?php
echo str_repeat("-=", 10);
?>
L'exemple ci-dessus va afficher :
-=-=-=-=-=-=-=-=-=-=
Voir aussi
- for
- str_pad() - Complète une chaîne jusqu'à une taille donnée
- substr_count() - Compte le nombre d'occurrences de segments dans une chaîne
str_repeat
Damien Bezborodov
28-Apr-2009 09:45
28-Apr-2009 09:45
claude dot pache at gmail dot com
10-Feb-2009 11:25
10-Feb-2009 11:25
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;
}
?>
Kees van Dieren
16-Jan-2009 10:26
16-Jan-2009 10:26
Needed a function to repeat a string with a separator.
<?php
/**
* Repeats <tt>$string</tt> <tt>$multiplier</tt> times, separated with <tt>$sep</tt>.
*
* str_repeat_sep('?', ',', 3) ==> "?,?,?"
* str_repeat_seap('..', '/', 3) ==> "../../.."
*
* @param string $string
* @param string $sep
* @param int $multiplier
* @return string
*/
function str_repeat_sep($string, $sep, $multiplier) {
$ret = "";
for($i=0;$i<$multiplier;$i++) {
if ($i) $ret.=$sep;
$ret.=$string;
}
return $ret;
}
?>
Alper Kaya
30-Jun-2007 12:09
30-Jun-2007 12:09
If you want to hide a part of your password, you can use this code. It's very simple and might be required in your user management panel.
<?php
$password = "12345abcdef";
$visibleLength = 4; // 4 chars from the beginning
echo substr($password,0,4).str_repeat("*", (strlen($password)-$visibleLength));
?>
15-Sep-2005 04:32
In reply to what Roland Knall wrote:
It is much simpler to use printf() or sprintf() for leading zeros.
<?php
printf("%05d<br>\n", 1); // Will echo 00001
sprintf("%05d<br>\n", 1); // Will return 00001
?>
21-Jul-2003 07:45
str_repeat does not repeat symbol with code 0 on some (maybe all?) systems (tested on PHP Version 4.3.2 , FreeBSD 4.8-STABLE i386 ).
Use <pre>
while(strlen($str) < $desired) $str .= chr(0);
</pre> to have string filled with zero-symbols.
dakota at dir dot bg
25-Jun-2002 12:06
25-Jun-2002 12:06
Note that the first argument is parsed only once, so it's impossible to do things like this:
echo str_repeat(++$i, 10);
The example will produce 10 times the value of $i+1, and will not do a cycle from $i to $i+10.
bryantSPAMw at geocities dot SPAM dot com
25-Oct-2001 01:16
25-Oct-2001 01:16
(For the benefit of those searching the website:)
This is the equivalent of Perl's "x" (repetition) operator, for eg. str_repeat("blah", 8) in PHP does the same thing as "blah" x 8 in Perl.
