Table of Content
PHP array_find was released in PHP 8.4 to locate a value inside an array and returns the first match.
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
Keeping track of the last record inserted is often important. Whether you are managing user registrations, processing orders, or handling…
There are some tools known as "PHP magic constants" that will make your code a little more clever and versatile.…
If you find a word that does not fit and want to fix it. You can use the PHP str_replace…
PHP $_SERVER is a superglobal. It’s a predefined variable containing information about your server, client, and request environment. As a…
The array_rand() is a helper function in PHP that makes it easier when dealing with arrays; you can just pull…
The PHP operator precedence refers to when doing a calculation for three or more numbers, they are calculating its values…
Sometimes, when you run a script, you may encounter an error because the directory you're trying to access doesn't exist.…
let's now dive into PHP comments—these simple but super important integral parts of PHP coding. You can think of comments…
The PHP superglobal $_FILES is a very important utility and great for dealing with file uploads on the web. When a user…
The PHP object is an instance from the PHP class or the main data structure that is already been created…