PHP array_find was released in PHP 8.4 to locate a value inside an array and returns the first match.
Table of Content
Understand the array_find Function in PHP
The array_find function checks values in an array and returns the first match.
The syntax looks like this:
array_find(array $array, callable $callback): mixed$arrayholds the list of values.$callbackruns on each value.- It returns the first value that matches.
This function checks values one by one. It stops once it finds a match. You use this function to pick one value that meets a rule.
Here is an example:
$nums = [2, 4, 6, 7, 8];
$result = array_find($nums, fn($n) => $n > 5);
echo $result;This returns 6 since it is the first value above five.
Use the array_find with Associative Arrays in PHP
You can use array_find with associative arrays. It checks values but keeps keys safe.
For example:
$users = [
"john" => 25,
"sara" => 30,
"mike" => 18
];
$result = array_find($users, fn($age) => $age < 20);
echo $result;This returns 18 since Mike’s age matches first.
Here is another example:
$products = [
"pen" => 2,
"book" => 5,
"bag" => 15
];
$result = array_find($products, fn($price) => $price > 10);
echo $result;This returns 15 since it is the first price above ten.
The Difference between array_find and array_filter
The array_find returns the first value that matches, while the array_filter returns all values that match.
Here is a table that shows you the key differences:
| Function | What it Returns | Use Case |
|---|---|---|
| array_find | First value that matches | Stop at first valid value |
| array_filter | All values that match | Keep a full filtered list |
Use array_find to get one value. Use array_filter to collect many values.
Examples of the array_find in PHP
Locate the first even number:
$nums = [3, 7, 10, 12, 15];
$result = array_find($nums, fn($n) => $n % 2 === 0);
echo $result;This example checks each value and stops once it finds the first even number. The output is 10 since it is the first even value in the list.
Find the first user with the admin role:
$users = [
["name" => "alex", "role" => "editor"],
["name" => "sara", "role" => "admin"],
["name" => "john", "role" => "admin"]
];
$result = array_find($users, fn($u) => $u["role"] === "admin");
echo $result["name"];This example returns sara since her role is the first match for the admin. The function checks the order and picks the first valid user role.
Match the first long word in a list:
$words = ["pen", "book", "dictionary", "bag"];
$result = array_find($words, fn($w) => strlen($w) > 5);
echo $result;This example checks string length and picks the first match. It prints dictionary since this is the first word with more than five letters.
Detect the first product with a discount above 30%:
$discounts = [
"pen" => 5,
"bag" => 20,
"phone" => 40,
"tablet" => 25
];
$result = array_find($discounts, fn($d) => $d > 30);
echo $result;This example looks at values in order and finds the first high discount. It prints 40 since the phone has the first discount above thirty percent.
Wrapping Up
You learned how array_find locates a single value and how it works with associative arrays. You also saw how it differs from array_filter.
Here is a quick recap:
array_findreturns the first match.- It works with simple and associative arrays.
array_filterreturns all matches.- Use the right function for your case.
FAQs
What does PHP array_find do?
array_find function searches through an array and returns
the first element that matches a condition.
Example:
$result = array_find([1, 2, 3, 4], function($n) {
return $n > 2;
});
echo $result; // Output: 3How is PHP array_find different from array_filter?
array_findreturns the first matching value.array_filterreturns all matching values.
$array = [1, 2, 3, 4, 5];
$find = array_find($array, fn($n) => $n > 3);
echo $find; // Output: 4
$filter = array_filter($array, fn($n) => $n > 3);
print_r($filter); // Output: [4, 5]
Can I use PHP array_find with associative arrays?
array_find works with associative arrays and can locate
elements by custom rules.
Example:
$users = [
["id" => 1, "name" => "Ali"],
["id" => 2, "name" => "Sara"],
["id" => 3, "name" => "Omar"]
];
$user = array_find($users, function($u) {
return $u["name"] === "Sara";
});
print_r($user);
// Output: Array ( [id] => 2 [name] => Sara )
How to write a custom PHP array_find function?
array_find function that works with
any type of array.
Example:
function array_find($array, $callback) {
foreach ($array as $key => $value) {
if ($callback($value, $key)) {
return $value;
}
}
return null;
}
$numbers = [10, 20, 30, 40];
$result = array_find($numbers, fn($n) => $n === 30);
echo $result; // Output: 30
Similar Reads
PHP didn’t have a way to check or clean user input. Developers used scattered code—some wrote custom checks, others used…
The array_column function in PHP takes values from one column in a multidimensional array. You can use it to pull…
You can use array_filter in PHP to remove unwanted data from arrays. It works with a custom callback or default…
The array_combine function in PHP creates a new array with one array for keys and another for values. It needs…
Traditional relational databases like MySQL often take center stage. However, with the rise of NoSQL databases, MongoDB has emerged as…
If you've ever tried to pull data from an XML file, you know it can be a bit tricky at…
A destructor in a PHP class runs when an object is no longer needed. It frees resources and cleans up…
The PHP named arguments are the names of the arguments through which the values are passed, allowing you to add…
In this tutorial, I will explain what does mean the PHP resource and we are going to cover all PHP…
The IF statement in PHP helps to see if a condition is true or not. If it is true, it…