Вывод пирамидок на PHP

Давайте теперь выведем на экран следующую пирамидку:

x
xx
xxx
xxxx
xxxxx

Приступим к решению задачи.

Для начала давайте вспомним код из предыдущих уроков, выводящий строку 'xxxxxxxxxx':

<?php $str = ''; for ($i = 0; $i < 10; $i++) { $str .= 'x'; } echo $str; // выведет 'xxxxxxxxxx' ?>

Для решения поставленной задачи на пирамидку просто модифицируем приведенный код: при каждом проходе цикла будем выводить на экран содержимое переменной $str и тег <br>:

<?php $str = ''; for ($i = 0; $i < 5; $i++) { $str .= 'x'; echo $str . '<br>'; } ?>

Выведите на экран следующую пирамидку:

xx
xxxx
xxxxxx
xxxxxxxx
xxxxxxxxxx

Пирамидка с цифрами

Давайте теперь выведем на экран следующую пирамидку:

111
222
333
444
555
666
777
888
999

Похожую задачу мы уже решали, когда выводили строку '111222333444555666777888999'. Напомню этот код:

<?php for ($i = 1; $i <= 9; $i++) { for ($j = 1; $j <= 3; $j++) { echo $i; // выводит '111', потом '222', потом '333' и так далее } } ?>

По сути нам нужна такая же строка, но с <br> в нужных местах. Добавим их:

<?php for ($i = 1; $i <= 9; $i++) { for ($j = 1; $j <= 3; $j++) { echo $i; } echo '<br>'; // выводим <br>, чтобы было в столбик } ?>

Пирамидка с цифрами

Выведем теперь следующую пирамидку:

1
22
333
4444
55555
666666
7777777
88888888
999999999

Задача аналогична предыдущей, только внутренний цикл должен крутиться не 3 раза, а в соответствии с числом: если у нас единица - то повторяем цикл 1 раз, если двойка - два раза, если тройка - три раза.

Как этого достичь: нужно в условии внутреннего цикла написать следующее: $j <= $i. В этом случае если $i равен 1, то это все равно, что в условии написать $j <= 1, а если $i равен 2 - то $j <= 2 и так далее:

<?php for ($i = 1; $i <= 9; $i++) { for ($j = 1; $j <= $i; $j++) { echo $i; } echo '<br>'; } ?>

Я думаю, вы уже обратили внимание, что в этой пирамидке мы не используем накопление в строку, которое мы разбирали ранее. Можно и с накоплением, но это получится чуть сложнее:

<?php for ($i = 1; $i <= 9; $i++) { $str = ''; // каждый раз зачищаем строку for ($j = 1; $j <= $i; $j++) { $str .= $i; } echo $str . '<br>'; } ?>

Выведите на экран следующую пирамидку:

1
333
55555
7777777
999999999

Перевернутые пирамидки

Научимся теперь делать перевернутые пирамидки. Сделаем, к примеру, вот такую:

xxxxx
xxxx
xxx
xx
x

Для решения задачи необходимо запустить два вложенных цикла, вот так:

<?php for ($i = 5; $i >= 1; $i--) { $str = ''; for ($j = 0; $j < $i; $j++) { $str .= 'x'; } echo $str . '<br>'; } ?>

Выведите на экран следующую пирамидку:

xxxxxxxxxx
xxxxxxxx
xxxxxx
xxxx
xx

Выведите на экран следующую пирамидку:

999999999
88888888
7777777
666666
55555
4444
333
22
1