J'ai cette chaîne: 000 003
, qui peut augmenter dès que d'autres commentaires sont publiés. Après 300 commentaires, cette chaîne ressemblera à ceci: 000 303
. Après 1 000 commentaires, 001 303
et ainsi de suite. J'utilise chunk_split()
pour ajouter l'espace après les 3 premiers zéros.Remplacer les zéros à gauche par un élément d'étendue
Je veux remplacer les zéros de tête par <span class="color-gray">the zeros here</span>
mais je ne peux pas le réparer. Voici comment la fonction ressemble à l'heure actuelle:
function format_id($string) {
if($string < 10) {
$test = chunk_split('00000'.$string, 3, ' ');
} elseif($string > 10 AND $string < 100) {
$test = chunk_split('0000'.$string, 3, ' ');
} elseif($string > 100 AND $string < 1000) {
$test = chunk_split('000'.$string, 3, ' ');
} elseif($string > 1000 AND $string < 10000) {
$test = chunk_split('00'.$string, 3, ' ');
} elseif($string > 10000 AND $string < 100000) {
$test = chunk_split('0'.$string, 3, ' ');
} else {
$test = chunk_split($string, 3, ' ');
}
return preg_replace('/^0/', '$1', $test);
}
format_id(35)
retours 00 003
. Je veux que ça ressemble à ceci en HTML: <span class="color-gray-light">000 00</span>3
. Seuls les zéros (comme je l'ai dit) seront dans l'élément span
.
Comment puis-je résoudre ce problème?
Pourquoi ne pas supprimer les espaces avec [str_replace] (http://php.net/manual/en/function.str-replace.php), puis l'utilisateur [number_format] (http: // php .net/manual/fr/function.number-format.php) ou/et [sprintf] (http://php.net/manual/fr/function.sprintf.php)? – Peon
Je suppose que vous voulez dire pourquoi dire pourquoi je ne montre pas les chiffres comme ceci: 1 403 434 et ainsi de suite. Parce que je veux que ce soit comme je l'ai montré dans ma question :) – Erik
https://stackoverflow.com/questions/1699958/formatting-a-number-with-leading-zeros-in-php? – Peon