0
0
PhpProgramBeginner · 2 min read

PHP Program to Print Star Pattern

Use nested for loops in PHP to print star patterns, for example: for ($i = 1; $i <= 5; $i++) { for ($j = 1; $j <= $i; $j++) { echo "*"; } echo "\n"; } prints a right-angled triangle of stars.
📋

Examples

Input5
Output* ** *** **** *****
Input3
Output* ** ***
Input1
Output*
🧠

How to Think About It

To print a star pattern, think of rows and columns. For each row, print stars equal to the row number. Use one loop to count rows and a nested loop to print stars in each row.
📐

Algorithm

1
Get the number of rows as input.
2
Start a loop from 1 to the number of rows.
3
Inside this loop, start another loop from 1 to the current row number.
4
Print a star in the inner loop without a newline.
5
After the inner loop ends, print a newline to move to the next row.
6
Repeat until all rows are printed.
💻

Code

php
<?php
$rows = 5;
for ($i = 1; $i <= $rows; $i++) {
    for ($j = 1; $j <= $i; $j++) {
        echo "*";
    }
    echo "\n";
}
?>
Output
* ** *** **** *****
🔍

Dry Run

Let's trace printing 3 rows of stars through the code

1

Start outer loop with i=1

Inner loop runs j=1 to 1, prints '*' once, then newline

2

Outer loop i=2

Inner loop runs j=1 to 2, prints '**', then newline

3

Outer loop i=3

Inner loop runs j=1 to 3, prints '***', then newline

i (row)j (stars printed)Output this row
11*
22**
33***
💡

Why This Works

Step 1: Outer loop controls rows

The outer for loop runs from 1 to the number of rows, deciding how many lines to print.

Step 2: Inner loop prints stars

The inner for loop prints stars equal to the current row number without moving to a new line.

Step 3: Newline after each row

After printing stars for a row, echo "\n" moves the cursor to the next line for the next row.

🔄

Alternative Approaches

Using while loops
php
<?php
$rows = 5;
$i = 1;
while ($i <= $rows) {
    $j = 1;
    while ($j <= $i) {
        echo "*";
        $j++;
    }
    echo "\n";
    $i++;
}
?>
While loops achieve the same result but are less concise than for loops.
Printing stars using str_repeat
php
<?php
$rows = 5;
for ($i = 1; $i <= $rows; $i++) {
    echo str_repeat("*", $i) . "\n";
}
?>
Using <code>str_repeat</code> simplifies star printing by repeating the star character.

Complexity: O(n^2) time, O(1) space

Time Complexity

The program uses nested loops where the outer loop runs n times and the inner loop runs up to n times, resulting in O(n^2) time.

Space Complexity

The program uses constant extra space, only variables for counters, so space complexity is O(1).

Which Approach is Fastest?

Using str_repeat is more concise and can be faster in practice, but all approaches have the same O(n^2) time complexity.

ApproachTimeSpaceBest For
Nested for loopsO(n^2)O(1)Clear control over printing stars
Nested while loopsO(n^2)O(1)Alternative loop style
str_repeat functionO(n^2)O(1)Simpler code, potentially faster
💡
Use nested loops where the outer loop controls rows and the inner loop controls stars per row.
⚠️
Beginners often forget to print a newline after each row, causing all stars to print on one line.