Arris
@Arris
Сапиенсы учатся, играя.

Как изящно и быстро сделать вывод числа «полоской» (ASCII-столбчатой диаграммой)?

Некая функция генерит набор чисел от 1..6

Нужно визуализировать вывод в виде набора горизонтальных "полосок" записанных символами, как-то так
XXX___
XX____
XXXXX_
XXX___

итп. Желательно печатать именно "_", а не пробел, хотя это усложнение.

Самое очевидное решение - рисовать такую полоску в каком-нибудь таком цикле:
for ( $i = 1; $i<= N; $i++) { for ($j=1; $j<= set[$i]; $j++) { echo 'X'; } echo '<br/> '; }


Но может быть есть какое-то более изящное решение, которого я не вижу?
  • Вопрос задан
  • 2466 просмотров
Решения вопроса 2
Arris
@Arris Автор вопроса
Сапиенсы учатся, играя.
В принципе я нашел решение :)

$str = str_repeat('_', MAX_STRING_LENGTH);  // в данном случае 6
...
$bar = substr_replace($str, str_repeat('X', $i), 0, $i );
...

Но может быть есть изящнее?
Ответ написан
Комментировать
Melkij
@Melkij
PostgreSQL DBA
str_pad(str_repeat('X', $i), MAX_STRING_LENGTH, '_', STR_PAD_RIGHT);

?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы