Why array functions matter in PHP - Performance Analysis
When working with arrays in PHP, the way we use built-in array functions can change how fast our code runs.
We want to see how these functions affect the time it takes to finish tasks as the array grows.
Analyze the time complexity of the following code snippet.
$array = range(1, $n);
// Using array_map to double each value
$result = array_map(fn($x) => $x * 2, $array);
// Using foreach to double each value
$result2 = [];
foreach ($array as $value) {
$result2[] = $value * 2;
}
This code doubles each number in an array using two methods: a built-in function and a manual loop.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Traversing the entire array to process each element once.
- How many times: Exactly once for each element, either inside array_map or foreach loop.
As the array size grows, the number of operations grows in a straight line with it.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 operations |
| 100 | 100 operations |
| 1000 | 1000 operations |
Pattern observation: Doubling the array size roughly doubles the work done.
Time Complexity: O(n)
This means the time to finish grows directly with the number of items in the array.
[X] Wrong: "Using array_map is slower because it's a function call for each item."
[OK] Correct: Both array_map and foreach loop go through each item once, so their time grows the same way with input size.
Understanding how built-in array functions work helps you write clear and efficient code, a skill valued in real projects and interviews.
"What if we used a nested loop inside array_map or foreach? How would the time complexity change?"
Practice
Solution
Step 1: Understand the role of array functions
Array functions provide ready-made tools to handle common tasks like sorting, searching, and counting elements in arrays.Step 2: Compare options
Only They simplify tasks like sorting and searching in arrays. correctly states that array functions simplify tasks with arrays. Other options describe unrelated or incorrect effects.Final Answer:
They simplify tasks like sorting and searching in arrays. -> Option BQuick Check:
Array functions simplify array tasks = A [OK]
- Thinking array functions change PHP core speed
- Believing arrays can only hold numbers
- Confusing array functions with input validation
$arr in PHP?Solution
Step 1: Recall PHP function for counting array elements
The correct function to count elements in an array iscount().Step 2: Check each option
Only count($arr); usescount($arr);which is valid PHP syntax. Others are not valid PHP functions.Final Answer:
count($arr); -> Option CQuick Check:
Counting array elements uses count() = B [OK]
- Using length() which is not a PHP function
- Trying size() which doesn't exist in PHP
- Assuming countElements() is built-in
$numbers = [3, 1, 4, 1, 5]; sort($numbers); print_r($numbers);
Solution
Step 1: Understand what sort() does
Thesort()function sorts the array in ascending order, changing the original array.Step 2: Apply sort() to the array
Sorting [3, 1, 4, 1, 5] ascending gives [1, 1, 3, 4, 5].Final Answer:
[1, 1, 3, 4, 5] -> Option AQuick Check:
sort() arranges numbers ascending = D [OK]
- Thinking sort() sorts descending by default
- Expecting original array unchanged
- Assuming sort() is not a built-in function
$fruits = ['apple', 'banana', 'cherry'];
$found = in_array('banana', $fruits);
if ($found = true) {
echo 'Found banana!';
}Solution
Step 1: Check the if condition syntax
The condition uses assignment '=' instead of comparison '==', so it always assigns true and evaluates as true.Step 2: Correct the condition
It should beif ($found == true)or simplyif ($found)to check the boolean value.Final Answer:
Using '=' instead of '==' in the if condition -> Option DQuick Check:
Use '==' to compare, not '=' [OK]
- Confusing '=' with '==' in conditions
- Thinking in_array() is invalid
- Missing semicolon after echo (actually present)
$ages = [21, 17, 30, 15, 25];.Using PHP array functions, which code snippet correctly filters out ages less than 18 and returns the filtered array?
Solution
Step 1: Understand the goal
We want to keep only ages 18 or older, so we need a function that filters elements based on a condition.Step 2: Identify correct array function
array_filter()keeps elements where the callback returns true. $adults = array_filter($ages, fn($age) => $age >= 18); uses it correctly with a function checking age >= 18.Step 3: Check other options
$adults = array_map(fn($age) => $age >= 18, $ages); usesarray_map()which transforms elements but does not filter. $adults = array_reduce($ages, fn($carry, $age) => $age >= 18 ? $age : $carry); usesarray_reduce()incorrectly for filtering. $adults = array_search(fn($age) => $age >= 18, $ages); usesarray_search()wrongly with a callback.Final Answer:
$adults = array_filter($ages, fn($age) => $age >= 18); -> Option AQuick Check:
Use array_filter() to select elements by condition [OK]
- Using array_map() instead of array_filter() for filtering
- Misusing array_reduce() for filtering
- Trying to use array_search() with a callback
Ready to prove it?
Pass the test and this pattern moves unknown
