Compléter une chaîne avec un caractère
Il arrive dans certains cas que l'on veuille formater des chaînes pour qu'elles aient toute la même taille. Exemple : '001
, '002'
, '003'
, '010'
.
Et il met déjà arriver de voir ce genre de code :
$var = '1';
$length = strlen($var);
for ($i = $length; $i < 3; $i++) {
$var = '0'.$var;
}
// $var => '001'
Autant dire que ce code est assez barbare.
Savez-vous qu'il existe une méthode spécifique pour faire ce traitement ?
$var = '1';
$var = str_pad($var, 3, '0', STR_PAD_LEFT);
str_pad
permet de "rembourrer" une chaîne avec une autre, soit à droite (par défaut), soit à gauche, soit les deux.
$var = '1';
$var = str_pad($var, 3, '0');
// $var => '100'
$var = '1';
$var = str_pad($var, 3, '0', STR_PAD_BOTH);
// $var => '010'
Cette fonction peut aussi compléter avec plusieurs caractères (la chaîne de remplacement sera tronquée si on arrive à la taille voulue)
$var = '1';
$var = str_pad($var, 6, '*_*');
// $var => '1*_**_'
Si votre objectif est de répéter la chaîne d'origine, il y a une autre méthode : str_repeat
.
$var = '1';
$var = str_repeat($var, 3);
// $var => '111'
Ca marche aussi avec une chaîne qui a plus d'un caractère :
$var = 'abc';
$var = str_repeat($var, 3);
// $var => 'abcabcabc'
Cet article t'a plu ? Si oui, je te propose de t'inscrire à ma dev letter pour recevoir régulièrement dans ta boîte mail mes conseils, mes nouveaux articles, des vidéos à voir, des outils à découvrir et encore bien d’autres choses.
Je m'inscris