Array push and pop in PHP - Time & Space Complexity
We want to understand how fast adding or removing items from the end of an array happens in PHP.
How does the time to push or pop change when the array grows bigger?
Analyze the time complexity of the following code snippet.
$array = [];
// Add items to the end
array_push($array, 10);
array_push($array, 20);
// Remove last item
array_pop($array);
This code adds two items to the end of an array and then removes the last item.
Look at what repeats or happens often.
- Primary operation: Adding or removing one item at the end of the array.
- How many times: Each push or pop happens once per call, no loops here.
Adding or removing one item at the end takes about the same time no matter how big the array is.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 1 operation per push or pop |
| 100 | 1 operation per push or pop |
| 1000 | 1 operation per push or pop |
Pattern observation: The time stays about the same even as the array grows.
Time Complexity: O(1)
This means adding or removing an item at the end takes constant time, no matter the array size.
[X] Wrong: "Adding an item to the array takes longer as the array gets bigger."
[OK] Correct: Because PHP arrays are implemented as ordered hash tables, adding or removing items at the end is generally efficient and does not grow linearly with array size.
Knowing that push and pop are fast helps you choose the right data structure and explain your code clearly in interviews.
"What if we added or removed items from the start of the array instead? How would the time complexity change?"
Practice
array_push do to an array?Solution
Step 1: Understand the purpose of
array_pusharray_pushis used to add elements to the end of an existing array.Step 2: Compare with other array functions
Functions likearray_popremove elements, butarray_pushonly adds elements at the end.Final Answer:
Adds one or more elements to the end of the array -> Option AQuick Check:
array_push = add elements at end [OK]
- Confusing array_push with array_pop
- Thinking array_push removes elements
- Assuming array_push sorts the array
$fruits using array_push?Solution
Step 1: Recall the function signature
The correct syntax isarray_push(array, value1, value2, ...), where the first argument is the array variable.Step 2: Check each option
array_push($fruits, 'apple'); correctly usesarray_push($fruits, 'apple');. Others misuse argument order or syntax.Final Answer:
array_push($fruits, 'apple'); -> Option DQuick Check:
array_push(array, value) syntax [OK]
- Swapping argument order
- Using arrow => instead of comma
- Passing only one argument incorrectly
$colors = ['red', 'green'];
array_push($colors, 'blue');
$last = array_pop($colors);
print_r($colors);
echo $last;
Solution
Step 1: Understand array_push effect
array_push adds 'blue' to the end, so array becomes ['red', 'green', 'blue'].Step 2: Understand array_pop effect
array_pop removes and returns the last element 'blue', so array becomes ['red', 'green'] and $last = 'blue'.Final Answer:
Array ( [0] => red [1] => green ) blue -> Option BQuick Check:
push adds, pop removes last [OK]
- Thinking pop removes first element
- Expecting array to still have 'blue'
- Confusing printed array and echoed value
$numbers = [1, 2, 3];
array_pop($numbers, 2);
print_r($numbers);
Solution
Step 1: Check array_pop function signature
array_pop accepts only one argument: the array variable.Step 2: Analyze the code
Passing a second argument (2) is invalid and will cause an error.Final Answer:
array_pop accepts only one argument, extra argument causes error -> Option CQuick Check:
array_pop(array) only one argument [OK]
- Passing multiple arguments to array_pop
- Thinking array_pop removes multiple elements
- Assuming no error on extra arguments
$stack = [];, which sequence of PHP statements correctly adds 'first', 'second', then removes the last added element and stores it in $removed?Solution
Step 1: Add elements in correct order
Usearray_push($stack, 'first')and thenarray_push($stack, 'second')to add elements to the stack.Step 2: Remove last element and store it
Use$removed = array_pop($stack);to remove and save the last added element ('second').Final Answer:
array_push($stack, 'first'); array_push($stack, 'second'); $removed = array_pop($stack); -> Option AQuick Check:
Push adds, pop removes last [OK]
- Calling array_pop before pushing elements
- Passing arguments in wrong order
- Using array_pop with extra arguments
Ready to prove it?
Pass the test and this pattern moves unknown
