Array access and modification in PHP - Time & Space Complexity
We want to understand how fast we can get or change items in an array.
How does the time needed change when the array grows bigger?
Analyze the time complexity of the following code snippet.
$array = [1, 2, 3, 4, 5];
// Access the third element
$value = $array[2];
// Modify the first element
$array[0] = 10;
// Add a new element at the end
$array[] = 6;
This code accesses, changes, and adds elements in an array.
Look for any repeated steps or loops.
- Primary operation: Single direct access or modification of an array element.
- How many times: Each operation happens once, no loops or recursion.
Accessing or changing one item takes the same time no matter how big the array is.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 1 |
| 100 | 1 |
| 1000 | 1 |
Pattern observation: The time stays the same even if the array grows larger.
Time Complexity: O(1)
This means accessing or changing one element takes a constant amount of time, no matter the array size.
[X] Wrong: "Accessing an element takes longer if the array is bigger."
[OK] Correct: Arrays let us jump directly to any element by its position, so the time does not grow with size.
Knowing that array access and modification are fast helps you choose the right data structure and explain your code clearly.
"What if we searched for a value without knowing its position? How would the time complexity change?"
Practice
$arr in PHP?Solution
Step 1: Understand PHP array indexing
PHP arrays start at index 0, so the first element is at index 0.Step 2: Identify correct syntax for array access
Use square brackets with the index number:$arr[0].Final Answer:
$arr[0] -> Option CQuick Check:
First element index = 0 [OK]
- Using index 1 for first element
- Using curly braces for array access
- Using object property syntax
$arr to 10?Solution
Step 1: Identify the index of the third element
Arrays start at 0, so the third element is at index 2.Step 2: Use correct syntax to assign value
Use square brackets with index 2:$arr[2] = 10;.Final Answer:
$arr[2] = 10; -> Option BQuick Check:
Index 2 for third element assignment [OK]
- Using parentheses instead of brackets
- Using object property syntax
- Using wrong index number
$arr = [5, 10, 15];
$arr[1] = $arr[1] + 5;
echo $arr[1];
Solution
Step 1: Understand initial array values
$arr = [5, 10, 15]; so $arr[1] is 10.Step 2: Calculate new value of $arr[1]
$arr[1] = $arr[1] + 5 means 10 + 5 = 15.Final Answer:
15 -> Option AQuick Check:
10 + 5 = 15 [OK]
- Printing old value without update
- Adding index instead of value
- Confusing array indexes
$arr = [1, 2, 3];
$arr[3] = 4;
echo $arr[3];
Solution
Step 1: Check array indexes and assignment
Array has indexes 0,1,2 initially. Assigning $arr[3] = 4 adds a new element at index 3.Step 2: Confirm if this causes error
PHP allows adding new elements by assigning to new indexes without error.Final Answer:
Assigning to index 3 adds a new element without error -> Option DQuick Check:
PHP arrays auto-expand on new index assignment [OK]
- Thinking accessing undefined index causes error
- Confusing syntax error with runtime behavior
- Believing echo can't print array elements
$arr = [2, 4, 6, 8];, which code snippet correctly doubles each element's value by modifying the array in place?Solution
Step 1: Understand how to modify array elements in place
Using a for loop with index allows direct modification of each element.Step 2: Analyze each option
A: foreach copies values, does not modify original array.
B: array_fill replaces all elements with same value, incorrect.
C: array_map returns new array, original unchanged.
D: for loop modifies $arr[$i] directly.Final Answer:
for ($i = 0; $i < count($arr); $i++) { $arr[$i] *= 2; } -> Option AQuick Check:
Use indexed loop to modify array elements [OK]
- Modifying foreach loop variable instead of array
- Expecting array_map to change original array
- Using array_fill incorrectly
Ready to prove it?
Pass the test and this pattern moves unknown
