PHP 8.5.0 RC 1 available for testing

array_any

(PHP 8 >= 8.4.0)

array_anyChecks if at least one array element satisfies a callback function

Description

array_any(array $array, callable $callback): bool

array_any() returns true , if the given callback returns true for any element. Otherwise the function returns false .

Parameters

array
The array that should be searched.
callback

The callback function to call to check each element, which must be

callback(mixed $value, mixed $key): bool
If this function returns true , true is returned from array_any() and the callback will not be called for further elements.

Return Values

The function returns true , if there is at least one element for which callback returns true . Otherwise the function returns false .

Examples

Example #1 array_any() example

<?php
$array
= [
'a' => 'dog',
'b' => 'cat',
'c' => 'cow',
'd' => 'duck',
'e' => 'goose',
'f' => 'elephant'
];

// Check, if any animal name is longer than 5 letters.
var_dump(array_any($array, function (string $value) {
return
strlen($value) > 5;
}));

// Check, if any animal name is shorter than 3 letters.
var_dump(array_any($array, function (string $value) {
return
strlen($value) < 3;
}));

// Check, if any array key is not a string.
var_dump(array_any($array, function (string $value, $key) {
return !
is_string($key);
}));
?>

The above example will output:

bool(true)
bool(false)
bool(false)

See Also

  • array_all() - Checks if all array elements satisfy a callback function
  • array_filter() - Filters elements of an array using a callback function
  • array_find() - Returns the first element satisfying a callback function
  • array_find_key() - Returns the key of the first element satisfying a callback function

Found A Problem?

Learn How To Improve This PageSubmit a Pull RequestReport a Bug
+add a note

User Contributed Notes 1 note

up
0
miken32 at example dot com
13 days ago
This can be a replacement for array_filter() where an existence check is the only purpose. But, unlike array_filter(), the callback always requires two arguments. There's no way to change this, so some a lot of old-fashioned string callables are no longer usable.

<?php
$arr
= [45, 'abc', 'def', 'ghi'];

if (
array_filter($arr, 'is_integer')) {
// works because of loose comparison: [45] == true
}

if (
array_any($arr, 'is_integer')) {
// PHP Warning: Uncaught ArgumentCountError: is_integer() expects exactly 1 argument, 2 given
}
?>
+add a note

AltStyle によって変換されたページ (->オリジナル) /