Добавить пробел перед цифрами в PHP - PullRequest
1 голос
/ 12 августа 2010

Как добавить пробел перед числами в PHP , чтобы получить вывод, подобный следующему?

   9      
  10
 100

Я использую str_pad($k,3,'',STR_PAD_LEFT), но пробел не работает. И мне не нужны ведущие нули, но я хочу пробелы.

Ответы [ 4 ]

6 голосов
/ 12 августа 2010

Возможно, вы ищете str_pad().

foreach (array(1,2,3,100,1000) as $number)
 echo str_pad($number, 10, " ", STR_PAD_LEFT);

Однако, если вы хотите вывести это в HTML, несколько пробелов будут преобразованы в один.В этом случае используйте   в качестве третьего параметра.

Кроме того, если вы используете шрифт, такой как Times или Arial, это никогда не даст совершенно точных результатов, поскольку символы различаются по ширине.Для получения идеальных результатов вам необходимо использовать шрифт Monospace, например Courier.

В любом случае, сначала проверьте ответ @Mark Baker.Правильное выравнивание данных с использованием CSS text-align: right является лучшим решением в большинстве случаев.

4 голосов
/ 12 августа 2010

Если вы отображаете результат в веб-браузере, то вы должны знать, что браузеры имеют эту неприятную небольшую тенденцию конвертировать несколько пробелов в один пробел.Чтобы проверить, работает ли ваш код, используйте параметр браузера «Просмотреть исходный код» и подсчитайте пробелы в фактическом источнике, а не в отображаемом отображении.

Затем посмотрите на альтернативы, такие как   или выравнивание по правому краюзначения с использованием CSS .

1 голос
/ 12 августа 2010

При печати чисел:

printf("%5d\n", $number);

Замените 5 тем минимальным количеством пробелов, которое вы хотите.

0 голосов
/ 12 августа 2010

Используйте для этой цели функцию str_pad .

...