Una vez más aquí. Hoy vengo a actualizar un viejo artículo que en su día escribí, y que hace poco una usuaria me pidió que actualizara (pues lo publiqué en el 2017). Aquél artículo, titulado Crea dos triángulos formando una pirámide usando PHP, se ha quedado un poco viejo. Además la pirámide que se dibujaba en ese artículo, era una pirámide vertical. Bueno, pues esta usuaria, me pidió que actualizase este artículo para dibujar una pirámide de asteriscos (o triángulo). Me decía que tenía problemas para adaptar ese artículo a lo que ella buscaba. Y a ello me he puesto…
Como único requisito, me pidió que la altura de la pirámide se modificase mediante el valor de una variable llamada «altura«. Y bueno, que la pirámide se dibujase con asteriscos. Pues todo esto, haciendo uso de algunos bucles for, esto se puede conseguir de forma sencilla.
El código de la pirámide con asteriscos
Como decía, este código que vamos a ver, está creado con PHP, y dibuja una pirámide de asteriscos con una altura dada por la variable $altura
. La idea detrás del código es calcular el número de espacios en blanco y asteriscos que se necesitan en cada fila de la pirámide para que los asteriscos estén centrados.

Primero, se va a calcular el número máximo de asteriscos que habrá en la fila más larga de la pirámide, que es 2 * $altura - 1
.
Luego, se usa un bucle for
para iterar a través de cada fila de la pirámide. En cada iteración, se calcula el número de asteriscos que se necesitan para esa fila (que comienza con 1 asterisco y se incrementa de 2 en 2). Después se calcula el número de espacios en blanco que se necesitan para que los asteriscos estén centrados en la fila.
Finalmente, se usan dos bucles for
para imprimir los espacios en blanco y los asteriscos para cada fila, y se imprime un salto de línea al final de cada fila para que la siguiente fila comience en una nueva línea.
Dentro del archivo index.php, será donde vamos a guardar el siguiente código:
<?php $altura = 6; // Altura de la pirámide // Calcular el número de asteriscos en la fila más larga $max_asteriscos = 2 * $altura - 1; for ($i = 1; $i <= $altura; $i++) { // Bucle para cada fila de la pirámide // Calcular el número de asteriscos en esta fila $num_asteriscos = 2 * $i - 1; // Calcular el número de espacios en blanco antes de los asteriscos $num_espacios = ($max_asteriscos - $num_asteriscos) / 2; // Imprimir los espacios en blanco for ($j = 1; $j <= $num_espacios; $j++) { echo " "; } // Imprimir los asteriscos for ($j = 1; $j <= $num_asteriscos; $j++) { if ($j % 2 == 0) { echo " "; } else { echo "* "; } } // Salto de línea al final de cada fila echo "<br/>"; } ?>
Si quieres ver este código funcionando, solo tienes que visitar el siguiente enlace la sección de ejemplos de esta página.