Table of Content
The PHP array_find_key function finds a key in an array by a condition. It checks each element and returns the first key that matches.
Understand the array_find_key in PHP
The array_find_key function returns the first key that matches a callback test. It scans each element in order and stops at the first match. This function was released in PHP 8.4.
The syntax looks like this:
array_find_key(array $array, callable $callback)- $array is the input array.
- $callback is the function that checks each value.
- It returns the matching key or
falseif no key matches.
The function takes an array and a test. It checks each element. Once the callback returns true, it gives back the key. If no element passes, it returns false.
Here is a quick example:
$arr = ["a" => 2, "b" => 7, "c" => 10];
$key = array_find_key($arr, fn($v) => $v > 5);
echo $key; // bThe function checks each value. It finds 7 at key "b". The result is "b".
The Difference Between array_find_key and array_search
This array_find_key runs a test on each value with a callback. It stops once the test returns true. It then gives back the key.
The array_search looks for a direct value in the array. It does not use a test. It compares values and returns the first matching key.
Here are the key differences:
| Function | Method | Output | Use case |
|---|---|---|---|
| array_find_key | Uses a callback test | First key that passes test | Flexible checks on values |
| array_search | Direct value search | First key with that value | Simple match by value |
Use array_find_key if you need a test like greater than or less than. Use array_search if you need a direct match of a value.
Examples of array_find_key in PHP
Find the first number over a limit:
$nums = [3, 6, 9, 12, 15];
$key = array_find_key($nums, fn($v) => $v > 10);
echo $key; // 3The function scans the list from left to right. It stops once it finds 12. The output key is 3 since the value 12 sits at that index.
Find the first word that starts with the letter:
$words = ["cat", "dog", "bird", "ant"];
$key = array_find_key($words, fn($v) => $v[0] === "b");
echo $key; //2The test checks the first letter of each word. It finds "bird" as the first match. The index of "bird" is 2 and that is the result.
Find the first user with an age above 18:
$users = [
["name" => "Ali", "age" => 15],
["name" => "Sara", "age" => 20],
["name" => "Omar", "age" => 25]
];
$key = array_find_key($users, fn($v) => $v["age"] > 18);
echo $key; // 1The test checks each age in the list. It finds "Sara" since her age is 20. The function then stops and returns the key 1.
Find the first product with a price under the limit:
$products = [
"apple" => 5,
"banana" => 8,
"mango" => 12,
"grape" => 15
];
$key = array_find_key($products, fn($v) => $v < 10);
echo $key; // appleThe test checks each price in the list. The first match is "apple" with value 5. The function then returns the key "apple".
Wrapping Up
You learned the use of array_find_key and the way it differs from array_search. Here is a quick recap:
- The
array_find_keygives you the ability to run a test with a callback. - It returns the first key that passes the test.
- The
array_searchlooks for a direct value without a test. - You can use the
array_find_keyto check andarray_searchfor direct value matches.
FAQs
What is PHP array_find_key used for?
array_find_key is used to find the key of a given value.
It helps when you must match values and return their keys.
Example:
$array = ["id" => 101, "name" => "Ali", "age" => 22];
$key = array_search("Ali", $array);
echo $key; // Output: nameHow does PHP array_find_key differ from array_search?
array_search is the built-in function that actually performs it.
- array_search: Returns the first key that matches a value.
- array_keys: Returns all keys matching a value.
$data = ["red" => 1, "blue" => 2, "green" => 3];
$key = array_search(2, $data);
echo $key; // Output: blueCan PHP array_find_key work with multidimensional arrays?
array_search only works on one level.
$array = [
"user1" => ["id" => 101, "name" => "Sara"],
"user2" => ["id" => 102, "name" => "Omar"]
];
foreach ($array as $key => $value) {
if ($value["name"] === "Omar") {
echo $key; // Output: user2
}
}How to return all keys for a repeated value in PHP?
array_keys instead of array_search
because it returns multiple keys at once.
$data = ["x" => 1, "y" => 2, "z" => 1];
$result = array_keys($data, 1);
print_r($result); // Output: Array ( [0] => x [1] => z )
Similar Reads
Understanding how to update data in PHP and MySQL is like editing a draft—it is all about tweaking the right…
PHP array_multisort sorts many arrays or a multi level array in one go. It can sort data in numeric order…
The array_key_first helps you to get the first key of an array directly in PHP. It saves time and removes…
PHP array_intersect_uassoc checks two or more arrays and returns matches. It compares both the values and the keys with a…
Developers needed a way to check the length of a string, so the strlen function was introduced to handle this…
One of the important tasks is retrieving documents from a collection. MongoDB help us to make this process, but understanding…
This guide shows how PHP array_keys finds all keys in an array and how you can filter them by a…
You may need to get part of a text when you work with text in PHP. The mb_substr gives you…
PHP array_diff_uassoc compares arrays by values and keys. You can also pass a custom function to compare keys in your…
Connecting PHP to MongoDB allows you to integrate database functionalities into your web applications. MongoDB is a NoSQL database that…