Bird
Raised Fist0
PHPprogramming~5 mins

Array key and value extraction in PHP

Choose your learning style10 modes available
Introduction

Sometimes you want to get just the keys or just the values from an array to use them separately.

You want to list all the names (keys) from a list of people and their ages.
You want to get all the prices (values) from a product list to calculate the total.
You want to check if a certain key exists in an array.
You want to loop through only the values without caring about keys.
You want to create a new array from just the keys or just the values.
Syntax
PHP
<?php
// Extract keys from an array
$keys = array_keys($array);

// Extract values from an array
$values = array_values($array);
?>

array_keys() returns a new array with all the keys from the original array.

array_values() returns a new array with all the values from the original array, re-indexed starting at 0.

Examples
Extract keys and values from an associative array.
PHP
<?php
// Example with associative array
$person = ['name' => 'Alice', 'age' => 30];
$keys = array_keys($person);
$values = array_values($person);
print_r($keys);
print_r($values);
?>
Shows that extracting keys or values from an empty array returns an empty array.
PHP
<?php
// Example with empty array
$empty = [];
$keys = array_keys($empty);
$values = array_values($empty);
print_r($keys);
print_r($values);
?>
Extract keys and values from a simple indexed array.
PHP
<?php
// Example with indexed array
$numbers = [10, 20, 30];
$keys = array_keys($numbers);
$values = array_values($numbers);
print_r($keys);
print_r($values);
?>
Extract keys and values when the array has only one element.
PHP
<?php
// Example with single element array
$single = ['only' => 'one'];
$keys = array_keys($single);
$values = array_values($single);
print_r($keys);
print_r($values);
?>
Sample Program

This program creates an array of fruits with their colors, then extracts and prints the keys (fruit names) and values (colors) separately.

PHP
<?php
// Create an associative array
$fruits = [
    'apple' => 'red',
    'banana' => 'yellow',
    'grape' => 'purple'
];

// Print original array
echo "Original array:\n";
print_r($fruits);

// Extract keys
$fruit_names = array_keys($fruits);
// Extract values
$fruit_colors = array_values($fruits);

// Print keys
echo "\nExtracted keys (fruit names):\n";
print_r($fruit_names);

// Print values
echo "\nExtracted values (fruit colors):\n";
print_r($fruit_colors);
?>
OutputSuccess
Important Notes

Time complexity: Both array_keys() and array_values() run in O(n) time, where n is the number of elements.

Space complexity: They create new arrays, so space used is O(n).

A common mistake is expecting array_values() to keep original keys; it always re-indexes starting at 0.

Use array_keys() when you need to work with keys only, and array_values() when you want just the values without keys.

Summary

You can get all keys from an array using array_keys().

You can get all values from an array using array_values().

These functions help separate keys and values for easier processing.

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