Bird
Raised Fist0
PHPprogramming~5 mins

Array key and value extraction in PHP - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Array key and value extraction
O(n)
Understanding Time Complexity

When we extract keys and values from an array, we want to know how the time to do this grows as the array gets bigger.

We ask: How much work does the computer do when it pulls out all keys or values?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


$array = ["a" => 1, "b" => 2, "c" => 3];
$keys = array_keys($array);
$values = array_values($array);
    

This code gets all the keys and all the values from an associative array.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Traversing the entire array once to collect keys or values.
  • How many times: Each function loops through all elements once, so twice total for keys and values.
How Execution Grows With Input

As the array grows, the work grows in a straight line with the number of elements.

Input Size (n)Approx. Operations
10About 20 (10 for keys + 10 for values)
100About 200 (100 for keys + 100 for values)
1000About 2000 (1000 for keys + 1000 for values)

Pattern observation: The operations grow directly with the number of elements, doubling because keys and values are extracted separately.

Final Time Complexity

Time Complexity: O(n)

This means the time to extract keys and values grows in a straight line with the number of items in the array.

Common Mistake

[X] Wrong: "Extracting keys and values is instant and does not depend on array size."

[OK] Correct: The computer must look at each element to get keys or values, so more elements mean more work.

Interview Connect

Understanding how simple operations like extracting keys and values scale helps you reason about bigger problems and write efficient code.

Self-Check

"What if we extract keys and values together in one loop instead of separately? How would the time complexity change?"

Practice

(1/5)
1. Which PHP function is used to extract all the keys from an array?
easy
A. array_map()
B. array_values()
C. array_keys()
D. array_filter()

Solution

  1. Step 1: Understand the function purpose

    array_keys() returns all keys from an array.
  2. Step 2: Compare with other functions

    array_values() returns values, not keys; others do different tasks.
  3. Final Answer:

    array_keys() -> Option C
  4. Quick Check:

    Keys extraction = array_keys() [OK]
Hint: Keys come from array_keys(), values from array_values() [OK]
Common Mistakes:
  • Confusing array_keys() with array_values()
  • Using array_map() to get keys
  • Trying to get keys with array_filter()
2. Which of the following is the correct syntax to get all values from an array $arr in PHP?
easy
A. array_values($arr);
B. array_keys($arr);
C. values_array($arr);
D. get_values($arr);

Solution

  1. Step 1: Identify the correct function name

    The function to get values is array_values().
  2. Step 2: Check syntax correctness

    Correct syntax is array_values($arr); with parentheses and variable inside.
  3. Final Answer:

    array_values($arr); -> Option A
  4. Quick Check:

    Values extraction = array_values() [OK]
Hint: Values come from array_values(), keys from array_keys() [OK]
Common Mistakes:
  • Using array_keys() to get values
  • Using non-existent functions like values_array()
  • Missing parentheses in function call
3. What will be the output of the following PHP code?
$arr = ['a' => 1, 'b' => 2, 'c' => 3];
print_r(array_keys($arr));
medium
A. Array ( [0] => 1 [1] => 2 [2] => 3 )
B. Array ( [0] => 'a' [1] => 'b' [2] => 'c' )
C. Array ( [a] => 1 [b] => 2 [c] => 3 )
D. Array ( [0] => a [1] => b [2] => c )

Solution

  1. Step 1: Understand array_keys() output

    It returns an indexed array of all keys from the input array.
  2. Step 2: Analyze given array keys

    Keys are strings 'a', 'b', 'c', so output is an indexed array with these strings.
  3. Final Answer:

    Array ( [0] => a [1] => b [2] => c ) -> Option D
  4. Quick Check:

    array_keys(['a'=>1,...]) = ['a','b','c'] [OK]
Hint: array_keys() returns keys as indexed array [OK]
Common Mistakes:
  • Confusing keys with values in output
  • Expecting associative array output
  • Including quotes in output keys
4. Identify the error in this PHP code snippet:
$arr = ['x' => 10, 'y' => 20];
$keys = array_values($arr);
print_r($keys);
medium
A. array_values() should be array_keys() to get keys
B. Missing semicolon after array declaration
C. print_r() cannot print arrays
D. Variable $keys is not defined

Solution

  1. Step 1: Understand the goal

    The code tries to get keys but uses array_values() which returns values.
  2. Step 2: Correct function usage

    To get keys, use array_keys() instead of array_values().
  3. Final Answer:

    array_values() should be array_keys() to get keys -> Option A
  4. Quick Check:

    Keys need array_keys(), not array_values() [OK]
Hint: Use array_keys() for keys, array_values() for values [OK]
Common Mistakes:
  • Mixing up array_keys() and array_values()
  • Assuming print_r() can't print arrays
  • Ignoring correct variable definitions
5. Given the array $data = ['apple' => 3, 'banana' => 0, 'cherry' => 5, 'date' => 0];, which PHP code correctly extracts only the keys with non-zero values?
hard
A. $keys = array_keys($data);
B. $keys = array_keys(array_filter($data));
C. $keys = array_values(array_filter($data));
D. $keys = array_filter(array_keys($data));

Solution

  1. Step 1: Filter array to keep non-zero values

    array_filter($data) removes entries with zero values.
  2. Step 2: Extract keys from filtered array

    array_keys() gets keys from the filtered array, giving only keys with non-zero values.
  3. Final Answer:

    $keys = array_keys(array_filter($data)); -> Option B
  4. Quick Check:

    Filter then keys = array_keys(array_filter()) [OK]
Hint: Filter first, then get keys with array_keys(array_filter()) [OK]
Common Mistakes:
  • Using array_values() instead of array_keys() after filtering
  • Not filtering before extracting keys
  • Filtering keys instead of values
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard