Indexed array creation in PHP - Time & Space Complexity
Let's see how the time it takes to create an indexed array changes as the number of elements grows.
We want to know how the work increases when we add more items to the array.
Analyze the time complexity of the following code snippet.
$array = [];
for ($i = 0; $i < $n; $i++) {
$array[] = $i;
}
This code creates an empty array and adds numbers from 0 up to n-1 one by one.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Adding one element to the array inside the loop.
- How many times: Exactly n times, once for each number from 0 to n-1.
Each new element means one more step to add it to the array.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 additions |
| 100 | 100 additions |
| 1000 | 1000 additions |
Pattern observation: The work grows directly with the number of elements; double the elements, double the work.
Time Complexity: O(n)
This means the time to create the array grows in a straight line with the number of items added.
[X] Wrong: "Adding elements to an array inside a loop is instant and does not depend on the number of elements."
[OK] Correct: Each addition takes a small step, so more elements mean more steps, making the total time grow with n.
Understanding how simple loops grow with input size helps you explain and reason about code efficiency clearly in interviews.
"What if we used array_merge inside the loop instead of adding elements one by one? How would the time complexity change?"
Practice
Solution
Step 1: Recognize PHP array syntax
PHP indexed arrays can be created using square brackets [] or the array() function.Step 2: Check each option's syntax
$arr = ["apple", "banana", "cherry"];uses [] with comma-separated values, which is correct. Options A, B, and C use invalid syntax for arrays.Final Answer:
$arr = ["apple", "banana", "cherry"]; -> Option AQuick Check:
Correct array syntax =$arr = ["apple", "banana", "cherry"];[OK]
- Using curly braces {} instead of []
- Using parentheses () without array()
- Incorrect use of colons or other symbols
Solution
Step 1: Recall PHP array creation syntax
PHP allows creating arrays using array() with parentheses and comma-separated values.Step 2: Validate each option
$numbers = array(10, 20, 30);uses array() correctly. Options B, C, and D use invalid separators or brackets.Final Answer:
$numbers = array(10, 20, 30); -> Option BQuick Check:
array() with commas =$numbers = array(10, 20, 30);[OK]
- Using semicolons instead of commas
- Using parentheses without array()
- Using curly braces for arrays
$fruits = ["apple", "banana", "cherry"]; echo $fruits[1];
Solution
Step 1: Understand array indexing
Indexed arrays start at index 0, so $fruits[0] = "apple", $fruits[1] = "banana".Step 2: Identify the echoed element
The code echoes $fruits[1], which is "banana".Final Answer:
banana -> Option AQuick Check:
Index 1 element = banana [OK]
- Confusing index 1 with index 0
- Expecting output of entire array
- Syntax errors from missing semicolons
$colors = array["red", "green", "blue"];
Solution
Step 1: Check array() function syntax
The array() function requires parentheses (), not square brackets [].Step 2: Identify the syntax error
The code uses array[ ... ] which is invalid syntax and causes an error.Final Answer:
Using square brackets [] instead of parentheses () with array -> Option DQuick Check:
array() needs () not [] [OK]
- Confusing array() with [] syntax
- Forgetting semicolon (though present here)
- Thinking quotes type matters for array creation
Solution
Step 1: Recall PHP function for range creation
PHP provides the range() function to create arrays with sequences of numbers.Step 2: Evaluate each option
$numbers = range(1, 5);uses range(1, 5) correctly. Options A, B, and D use invalid syntax or unsupported constructs.Final Answer:
$numbers = range(1, 5); -> Option CQuick Check:
Use range() for sequences [OK]
- Using invalid range syntax like [1..5]
- Trying to write '1 to 5' inside array()
- Using curly braces {} for arrays
Ready to prove it?
Pass the test and this pattern moves unknown
