The array_keys() function in PHP

The PHP array_keys() function is used to retrieve the keys or index of an array.

The function syntax is as shown below:

array_keys(
    array $array,
    mixed $search_value,
    bool $strict = false
): array

This function has three parameters:

  • $array is the array you want to get the keys from
  • $search_value when specified, only keys containing this value are returned (optional)
  • $strict variable, use === strict comparison for the $search_value (optional)

Here’s an example of calling the array_keys() function:

$arr = [
    "name" => "Nathan",
    "age" => 27,
    "skills" => [
        "PHP",
        "JavaScript"
    ]
];

print_r(array_keys($arr));

The code above produces the following output:

Array
(
    [0] => name
    [1] => age
    [2] => skills
)

When you have an array with no custom keys, then this function will return the default numeric keys starting from 0:

$arr = ["Lion", "Tiger"];

print_r(array_keys($arr));

The output of the above code will be as follows:

Array
(
    [0] => 0
    [1] => 1
)

You can also choose to retrieve only keys of a specific value as shown below:

$arr = [
    "name" => "Nathan",
    "age" => 27,
    "role" => "PHP dev",
    "username" => "Nathan",
];

print_r(array_keys($arr, "Nathan"));

Because name and username have the same value as specified in the array_keys() function, both will be retrieved:

Array
(
    [0] => name
    [1] => username
)

One good use of the $search_value is to retrieve all keys with non-null values:

$arr = [
    "name" => "Nathan",
    "age" => 27,
    "role" => "PHP dev",
    "username" => null,
];

print_r(array_keys($arr, !null));

array_keys() will exclude username from the code above:

Array
(
    [0] => name
    [1] => age
    [2] => role
)

And that’s how the PHP array_keys() function works.

You can also get only array values using the PHP array_values() function.

More PHP tutorials

See all